E. Матрица
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Рассмотрим квадратную матрицу размера n × n, состоящую из единиц и нулей.

Будем считать матрицу хорошей, если она удовлетворяет следующему условию: в каждой строке матрицы все единицы идут подряд. То есть каждая строка имеет вид 00...0011...1100...00 (или же просто состоит из нулей, если в ней нет единиц).

Дана матрица a размера n × n, состоящая из единиц и нулей. Определите, можно ли из нее получить хорошую матрицу b с помощью перестановки столбцов, или нет.

Входные данные

В первой строке записано целое число n (1 ≤ n ≤ 500) — размер матрицы a.

В каждой из n последующих строк записано по n символов «0» и «1» — матрица a. Обратите внимание, символы записаны без разделителей.

Выходные данные

Выведите «YES» в первой строке, если возможно так переставить столбцы матрицы a, чтобы получилась хорошая матрица b. В следующих n строках выведите хорошую матрицу b. Если существует несколько ответов, разрешается вывести любой.

Если получить хорошую матрицу невозможно, выведите «NO».

Примеры
Входные данные
6
100010
110110
011001
010010
000100
011001
Выходные данные
YES
011000
111100
000111
001100
100000
000111
Входные данные
3
110
101
011
Выходные данные
NO