four=((0,1),(1,0),(0,-1),(-1,0)) cnt=0 def pos(x,y): return x*W+y def dfs(i1,i2): global cnt ad=[] nc=0 for i in range(H): for j in range(W): if (i1>>pos(i,j))&1: nc+=1 continue flg=False for dx,dy in four: nx=i+dx ny=j+dy if nx<0 or H<=nx or ny<0 or W<=ny: continue if (i1>>pos(nx,ny))&1: nc+=1 flg=True break if (i2>>pos(i,j))&1: continue if flg: i2+=1<