E=enumerate
def V(m,x,y):
if x>-1<y:
try:return m[x][y]
except:return 0
def f(m):
s=[];f=e=0
while O:=[(x,y)for x,b in E(m)for y,_ in E(b)if m[x][y]and(x,y)not in s]:
q=[O[0]]
while q:
x,y=q.pop(0);M,D=[(0,1),(0,-1),(1,0),(-1,0)],[(-1,-1),(-1,1),(1,-1),(1,1)]
if(x,y)in s:continue
s+=(x,y),
for u,v in M:
p=(x+u,y+v);z=p in s;e-=~-z
if V(m,*p)and~-z:q+=p,
for u,v in D:
p=(x+u,y+v);z=p in s;f+=~-z&all(((x+u+j,y+v+k)in s)^1for j,k in[(0,(v<1)*2-1),((u<1)*2-1,0)])
if V(m,*p)and~-z:q+=p,
return f-e+sum(map(sum,m))
import ast
s="""[[1]] -> 1
[[1,0,1]] -> 2
[[1,0],[0,1]] -> 1
[[0,1,0],[0,0,1],[1,1,1]] -> 1
[[0,1,1,0],[1,0,1,1],[1,1,0,1],[0,1,1,0]] -> -1
[[0,0,1,1,0],[0,1,1,1,1],[1,1,0,1,1],[0,1,1,0,0]] -> 0
[[1,1,1,0,1,1,1],[1,0,1,0,1,0,1],[1,1,1,0,1,1,1]] -> 0
[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]] -> 1"""
for i in filter(None,s.split('\n')):a,b=map(ast.literal_eval,i.split(' -> '));assert f(a)==b
RT1lbnVtZXJhdGUKZGVmIFYobSx4LHkpOgogaWYgeD4tMTx5OgogIHRyeTpyZXR1cm4gbVt4XVt5XQogIGV4Y2VwdDpyZXR1cm4gMApkZWYgZihtKToKIHM9W107Zj1lPTAKIHdoaWxlIE86PVsoeCx5KWZvciB4LGIgaW4gRShtKWZvciB5LF8gaW4gRShiKWlmIG1beF1beV1hbmQoeCx5KW5vdCBpbiBzXToKICBxPVtPWzBdXQogIHdoaWxlIHE6CiAgIHgseT1xLnBvcCgwKTtNLEQ9WygwLDEpLCgwLC0xKSwoMSwwKSwoLTEsMCldLFsoLTEsLTEpLCgtMSwxKSwoMSwtMSksKDEsMSldCiAgIGlmKHgseSlpbiBzOmNvbnRpbnVlCiAgIHMrPSh4LHkpLAogICBmb3IgdSx2IGluIE06CiAgICBwPSh4K3UseSt2KTt6PXAgaW4gcztlLT1+LXoKICAgIGlmIFYobSwqcClhbmR+LXo6cSs9cCwKICAgZm9yIHUsdiBpbiBEOgogICAgcD0oeCt1LHkrdik7ej1wIGluIHM7Zis9fi16JmFsbCgoKHgrdStqLHkrditrKWluIHMpXjFmb3IgaixrIGluWygwLCh2PDEpKjItMSksKCh1PDEpKjItMSwwKV0pCiAgICBpZiBWKG0sKnApYW5kfi16OnErPXAsCiByZXR1cm4gZi1lK3N1bShtYXAoc3VtLG0pKQoKaW1wb3J0IGFzdApzPSIiIltbMV1dIC0+IDEKW1sxLDAsMV1dIC0+IDIKW1sxLDBdLFswLDFdXSAtPiAxCltbMCwxLDBdLFswLDAsMV0sWzEsMSwxXV0gLT4gMQpbWzAsMSwxLDBdLFsxLDAsMSwxXSxbMSwxLDAsMV0sWzAsMSwxLDBdXSAtPiAtMQpbWzAsMCwxLDEsMF0sWzAsMSwxLDEsMV0sWzEsMSwwLDEsMV0sWzAsMSwxLDAsMF1dIC0+IDAKW1sxLDEsMSwwLDEsMSwxXSxbMSwwLDEsMCwxLDAsMV0sWzEsMSwxLDAsMSwxLDFdXSAtPiAwCltbMSwxLDEsMSwxXSxbMSwwLDAsMCwxXSxbMSwwLDEsMCwxXSxbMSwwLDAsMCwxXSxbMSwxLDEsMSwxXV0gLT4gMSIiIgpmb3IgaSBpbiBmaWx0ZXIoTm9uZSxzLnNwbGl0KCdcbicpKTphLGI9bWFwKGFzdC5saXRlcmFsX2V2YWwsaS5zcGxpdCgnIC0+ICcpKTthc3NlcnQgZihhKT09Yg==