Сортування доміно
Денис, молодий програміст, отримав набір доміно як подарунок на день народження. Оскільки він не знав, як грати в доміно, то вигадав нову гру: він взяв n доміно з набору і розмістив їх у прямокутник розміром 2 * n, так що кожна доміношка утворює один горизонтальний рядок. Потім він переставляв і перевертав деякі з них так, щоб числа в лівому стовпці були відсортовані зверху вниз у неубувному порядку, а числа в правому стовпці — у неспадному порядку. Денис назвав цю гру "сортування доміно".
Однак ця гра займає багато часу... Тепер Денис хоче написати програму, яка буде сортувати будь-який запропонований йому набір доміно. Але оскільки Денис молодий програміст, він просить вас допомогти йому.
Вхідні дані
Перша строка містить ціле число n (1 ≤ n ≤ 10^5
). Наступні n строк описують доміно. i-ий рядок містить два цілі числа a[i]
і b[i]
(0 ≤ a[i]
, b[i]
≤ 10^6
). Вони відповідають числам на i-му доміно.
Вихідні дані
У першому рядку виведіть YES, якщо заданий набір доміно можна відсортувати, як описано. Наступні n рядків повинні описувати доміно у відсортованому вигляді — по два числа в кожному рядку. Числа в першій колонці повинні йти у неубувному порядку, а в другій колонці — у неспадному порядку. Якщо існує декілька рішень, виведіть будь-яке. Якщо рішення не існує, виведіть у першому рядку NO.