#Lutece3293. 上三角矩阵

上三角矩阵

Description

Natsuzora 有一个 n×nn\times n0101 矩阵,他想要把这个矩阵变成完全上三角矩阵

完全上三角矩阵的定义如下:如果一个 0101 矩阵 aa 是完全上三角矩阵,那么当 iji\leq j 时,ai,j=1a_{i,j}=1;否则,ai,j=0a_{i,j}=0

为了便于理解,这里给出一个 4×44\times 4 的完全上三角矩阵的例子:

$$\begin{bmatrix} 1&1&1&1\\ 0&1&1&1\\ 0&0&1&1\\ 0&0&0&1 \end{bmatrix} $$

Natsuzora 可以对矩阵进行任意次操作,每次操作为如下两种之一:

  • 选择两个数字 iijj (1i<jn)(1\leq i<j\leq n),然后交换矩阵的第 ii 行和第 jj 行;
  • 选择两个数字 iijj (1i<jn)(1\leq i<j\leq n),然后交换矩阵的第 ii 列和第 jj 列。

交换矩阵的两行的意思是将矩阵每一列中位于这两行的两个元素进行交换;交换两列也是类似的。

请你告诉 Natsuzora,他是否有可能将这个矩阵变为完全上三角矩阵。

Input

第一行一个整数 nn (1n100)(1\leq n\leq 100),表示 Natsuzora 的矩阵的大小。

接下来 nn 行,第 ii 行包含一个长度为 nn 的字符串 sis_i。该字符串中只包含字符 01,其中若 ai,j=1a_{i,j}=1,则 si,js_{i,j}1;若 ai,j=0a_{i,j}=0,则 si,js_{i,j}0

Output

若该矩阵可以变为完全上三角矩阵,输出 YES;否则,输出 NO

Samples

4
1001
1000
1011
1111
YES

Note

对于第一个样例,以下是一个合法的操作序列:

  • 交换第 11, 44 行;
  • 交换第 22, 33 行;
  • 交换第 33, 44 行;
  • 交换第 11, 44 列;
  • 交换第 11, 33 列;
  • 交换第 11, 22 列。

Resources

电子科技大学第十三届 ACM 趣味程序设计竞赛