#include <fstream>
int main() {
int n, **a, fact, vs, i, j, s1, s0, p0, p1;
std ::ifstream ifst( "input.txt" );
std ::ofstream ofst( "output.txt" );
ifst >> n;
a = new int*[ n ];
for( i = 0; i < n; i ++ ) {
a[ i ] = new int[ n ];
for( j = 0; j < n; j ++ )
ifst >> a[ i ][ j ];
}
fact = 1;
for( i = 1; i <= n; i ++ )
fact *= i;
vs = ( (1 + n) / 2. ) * n;
for( i = 0; i < n; i ++ ) {
s0 = s1 = 0;
p1 = p0 = 1;
for( j = 0; j < n; j ++ ) {
s0 += a[ i ][ j ];
p0 *= a[ i ][ j ];
s1 += a[ j ][ i ];
p1 *= a[ j ][ i ];
}
if( s0 != vs || s1 != vs || p1 != fact || p0 != fact )
break;
}
ofst << ( i == n ? "yes" : "no" );
for( i = 0; i < n; i ++ )
delete[] a[i];
delete[] a;
ifst .close();
ofst .close();
return 0;
}