Оперативная память компьютера состоит из N ячеек, занумерованных числами от 0 до N-1. В текущий момент времени в памяти находятся M задач, каждая из которых использует свой участок памяти. Участки разных задач не пересекаются. Известны начальные и конечные адреса каждого участка для каждой задачи.
 Найдите длину, а также начало и конец самого длинного сплошного участка памяти, свободного в данный момент времени от задач. Если таких участков несколько, то выведите концы участка с самыми большими номерами (самого правого участка).
 Формат ввода
 В первой строке записано одно целое число N — количество ячеек оперативной (1 ≤ N ≤ 2·109).
 Во второй строке записано одно целое число M — количество задач, находящихся в памяти компьютера (0 ≤ M ≤ 15 000).
 В каждой из следующих 2·M строк записаны номера начального адреса (в нечетных строках) и номера конечного адреса (в четных строках) участка памяти для каждой задачи. Гарантируется, что начальный адрес не больше конечного.
 Формат вывода
 В первой строке целое число — длину самого длинного сплошного участка памяти, свободного от данных.
 Два целых числа через пробел — начальный и конечный адрес самого длинного сплошного участка памяти, свободного от задач.
 Если вся память заполнена, то выведите единственное число 0.
 Пример 1
 Ввод Вывод
 15
 4
 0
 2
 5
 6
 10
 10
 11
 14
 3
 7 9
 Пример 2
 Ввод Вывод
 13
 2
 0
 0
 6
 7
 5
 8 12
 Пример 3
 Ввод Вывод
 5
 1
 0
 4
 0
 Примечания
 В первом примере свободными являются участки [3;4] и [7;9]. Максимальную длину 3 из них имеет [7;9].
 Во втором примере свободными являются участки [1;5] и [8;12]. Они имеют одинаковую длину 5. Самый правый из них [8;12].
 В третьем примере вся память заполнена.
                                                            
                             
                         
                    
Объяснение:
Компилятор (цомпілер; цомпілінг программ — компиляциялаушы программа) — 1) жоғарғы деңгейлі программалау тілінде жазылған алғашқы программаны машиналық тілге (алгоритмдік тілдер, түсіндіргіш, аударғыш) түрлендіруді орындайтын компьютердің жалпы математикалық жасақтамасының құрамды бөлігі. Компилятор екі бөліктен тұрады: бірінші бөлігі — программалаушының программаны жазуы үшін пайдаланылатын алғашқы тіл, екіншісі — объектілік программаны машиналық тілде жазатын аударғыш. Қандай да бір жоғары деңгейлі тіл үшін к.