ull r[100][100]; if(1){ Rand g; rep(y,100){ rep(x,100){ r[y][x]=(ull)g.get()<<32^g.get(); } } } struct S{char a[100][101];}; ll@(n,u,h,w); ll f[n]; S s[n]; rep(i,n){ rd(f[i]); rep(y,h){ rd(s[i].a[y]); } } ll best_v=-1; S best_s; unordered_map m; rrep(i,n){ ull b=0; rep(y,h){ rep(x,w){ if(s[i].a[y][x]=='#'){ b^=r[y][x]; } } } if(i=h){ break; } b^=r[y][x]; s.a[y][x]^='.'^'#'; ll v=m[b]; if(best_v