Вася розв'язав задачу на математичному тесті й отримав відповідь у вигляді об'єднання відрізків [l_i, r_i] на числовій прямій. Однак деякі з цих відрізків можуть перетинатися, що Васю не влаштовує.
Ваша задача — подати відповідь Васі у вигляді об'єднання найменшої кількості відрізків.
Перший рядок містить ціле число (1 \leq n \leq 50000).
Кожен із наступних рядків містить по два цілих числа l_i і r_i (|l_i|, |r_i| \leq 50000), розділених одним або кількома пробілами. Кожну пару подано в окремому рядку.
У першому рядку виведіть ціле число — кількість відрізків у шуканому об'єднанні. У наступних рядках виведіть ці відрізки у тому самому форматі, що й у вхідних даних. Список відрізків має бути впорядковано за зростанням їхньої лівої межі.
Приклад 1