#include #include #include #include #include #include using namespace std; void die() { cout << "0\n"; exit(0); } int g[1 << 10][1 << 10]; bool seen[1 << 20]; void solve() { int n; cin >> n; n = 1 << n; int maxv = (n * n - 1) / 3; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) cin >> g[i][j]; { int zero = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) zero += g[i][j] == 0; if(zero != 1) die(); } { int dx[4]{-1,0,1,0}; int dy[4]{0,1,0,-1}; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(g[i][j]) { for(int k = 0; k < 4; k++) { int ax = i + dx[k]; int ay = j + dy[k]; int bx = i + dx[(k+1)%4]; int by = j + dy[(k+1)%4]; if(min(ax, ay) >= 0 && min(bx, by) >= 0 && max(ax, ay) < n && max(bx, by) < n && g[i][j] == g[ax][ay] && g[i][j] == g[bx][by]) { if(seen[g[i][j]]) die(); seen[g[i][j]] = true; } } } } } for(int a = 1; a <= maxv; a++) if(!seen[a]) die(); } cout << "1\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); solve(); }