Пусть $p$ и $q$ — две перестановки множества $\{1, 2, \dots, N\}$. Граф сходства перестановок $p$ и $q$, обозначаемый $S(p, q)$, определяется следующим образом:
- $S(p, q)$ имеет $N$ помеченных вершин, пронумерованных от $1$ до $N$.
- Ребро между вершинами $i$ и $j$ ($1 \le i < j \le N$) существует тогда и только тогда, когда условия $p_i < p_j$ и $q_i < q_j$ либо оба истинны, либо оба ложны.
Вам дан простой неориентированный граф $G$ с $N$ помеченными вершинами, пронумерованными от $1$ до $N$. Найдите пару перестановок $(p, q)$ множества $\{1, 2, \dots, N\}$, удовлетворяющую условию $S(p, q) = G$.
Входные данные
Первая строка содержит одно целое число $N$. Каждая из следующих $N$ строк содержит $N$ целых чисел, разделенных пробелами. $j$-е число в $i$-й строке, $E(i, j)$, равно $1$, если между вершинами $i$ и $j$ есть ребро, и $0$ в противном случае.
- $1 \le N \le 100$
- $0 \le E(i, j) \le 1$ ($1 \le i, j \le N$)
- $E(i, j) = E(j, i)$ ($1 \le i < j \le N$)
- $E(i, i) = 0$ ($1 \le i \le N$)
Выходные данные
Если найти перестановки $p$ и $q$, удовлетворяющие условию, невозможно, выведите NO. В противном случае выведите YES в первой строке. В следующих двух строках выведите перестановки $p$ и $q$. Если существует несколько решений, выведите любое из них.
Примеры
Входные данные 1
4 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0
Выходные данные 1
YES 1 2 3 4 2 4 1 3
Входные данные 2
6 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0
Выходные данные 2
NO