Обертання Кілець
Будь-яку квадратну сітку можна розглядати як один або більше кілець, розташованих одне всередині іншого. Наприклад, як показано на рисунку (a), 5×5 сітка складається з трьох кілець, пронумерованих 1, 2 та 3 (ззовні всередину). Квадратна сітка розміру N вважається відсортованою, якщо вона містить значення від 1 до N^2 у порядку рядків, як показано на рисунку (b) для N = 4. Ми хочемо визначити, чи можна відсортувати задану квадратну сітку, лише обертаючи її кільця. Наприклад, сітку на рисунку (c) можна відсортувати, обертаючи перше кільце на два місця проти годинникової стрілки і обертаючи друге кільце на одне місце за годинниковою стрілкою.
Вхідні дані
Ваша програма буде протестована на одному або більше тестових випадках. Перша вхідна строка тестового випадку - це ціле число N, яке є розміром сітки. Далі йдуть N рядків, кожен з яких складається з N цілих чисел, що визначають значення в сітці в порядку рядків. Зверніть увагу, що 0 < N ≤ 1000 і значення в сітці є натуральними числами, меншими або рівними 1000000.
Кінець тестових випадків визначається фіктивним тестовим випадком з N = 0.
Вихідні дані
Для кожного тестового випадку виведіть результат в одному рядку у наступному форматі:
k. result
Де k - це номер тестового випадку (починаючи з 1), а result - це "YES" або "NO" (без подвійних лапок).