E=enumerate
def f(m):
u=int(len(m)**.5);m=[m[i:i+u]for i in range(0,len(m),u)];Q={(x,y)for x,r in E(m)for y,v in E(r)};W=[]
def M(x,y):J,K=[(-1,0),(0,1),(1,0),(0,-1)][int(m[x][y])-1];return(x+J)%u,(y+K)%u
while Q:
(x,y),*Q=Q;D={(x,y):1};F=1
while D[(x,y)]<3:x,y=M(x,y);D[(x,y)]=D.get((x,y),0)+1
while F:
Q,F={*Q}-{*D},0
for x,y in Q:
if M(x,y)in D:D[(x,y)]=F=1
I=[0,0]
for i in D:I[D[i]<2]+=1
W+=I,
return W
print(f('1232124421111421313441231'))
RT1lbnVtZXJhdGUKZGVmIGYobSk6CiB1PWludChsZW4obSkqKi41KTttPVttW2k6aSt1XWZvciBpIGluIHJhbmdlKDAsbGVuKG0pLHUpXTtRPXsoeCx5KWZvciB4LHIgaW4gRShtKWZvciB5LHYgaW4gRShyKX07Vz1bXQogZGVmIE0oeCx5KTpKLEs9WygtMSwwKSwoMCwxKSwoMSwwKSwoMCwtMSldW2ludChtW3hdW3ldKS0xXTtyZXR1cm4oeCtKKSV1LCh5K0spJXUKIHdoaWxlIFE6CiAgKHgseSksKlE9UTtEPXsoeCx5KToxfTtGPTEKICB3aGlsZSBEWyh4LHkpXTwzOngseT1NKHgseSk7RFsoeCx5KV09RC5nZXQoKHgseSksMCkrMQogIHdoaWxlIEY6CiAgIFEsRj17KlF9LXsqRH0sMAogICBmb3IgeCx5IGluIFE6CiAgICBpZiBNKHgseSlpbiBEOkRbKHgseSldPUY9MQogIEk9WzAsMF0KICBmb3IgaSBpbiBEOklbRFtpXTwyXSs9MQogIFcrPUksCiByZXR1cm4gVwogCnByaW50KGYoJzEyMzIxMjQ0MjExMTE0MjEzMTM0NDEyMzEnKSk=