#include using namespace std; typedef pair pii; int n,nn,i,j,tot,ntot,a[44][44],b[(1<<25)+5],r[44],c[44],s[7][7]; void inc(int i, int j) { int msk=(1<<(a[i][j]-1)); r[i]^=msk; c[j]^=msk; s[i/n][j/n]^=msk; tot++; } void dec(int i, int j) { if (a[i][j]==0) return; int msk=(1<<(a[i][j]-1)); r[i]^=msk; c[j]^=msk; s[i/n][j/n]^=msk; tot--; a[i][j]=0; } void rev(const vector& v) { for (int i=0; i v; while (tot=2) { int msk=(r[wi]&c[wj]&s[wi/n][wj/n]); v.push_back({wi,wj}); for (int e=0; e