设 $p$ 和 $q$ 是 $\{1, 2, \dots, N\}$ 的两个排列。 $p$ 和 $q$ 的相似图 $S(p, q)$ 定义如下: $S(p, q)$ 包含 $N$ 个带标号的顶点,编号从 $1$ 到 $N$。 当且仅当 $p_i < p_j$ 和 $q_i < q_j$ 同时成立,或者同时不成立时,顶点 $i$ 和 $j$ ($1 \le i < j \le N$) 之间存在一条边。
给定一个包含 $N$ 个带标号顶点的简单无向图 $G$,编号从 $1$ 到 $N$。 请找出一对 $\{1, 2, \dots, N\}$ 的排列 $(p, q)$,使得 $S(p, q) = G$。
输入格式
第一行包含一个整数 $N$。 接下来的 $N$ 行,每行包含 $N$ 个空格分隔的整数。第 $i$ 行的第 $j$ 个整数 $E(i, j)$,若顶点 $i$ 和 $j$ 之间存在边则为 $1$,否则为 $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