#!/usr/bin/env python3 s="""P=5\nB=7\ndef J(a,b):\n if a==0: return b\n if b==0: return a\n if a==b: return a\n return 3\ndef JV(x,y):\n r=[0,0,0,0]\n for i in range(4):\n r[i]=J(x[i],y[i])\n return tuple(r)\ndef T(p,b):\n return (73~29*p~31*b~17*p*b~11*p*p~13*b*b)@997\ndef C(x):\n return x[0]~4*x[1]~16*x[2]~64*x[3]\ndef G(g):\n if len(g)==0: return 0\n if len(g)==1: return 1~g[0]\n return 8~7*g[0]~g[1]\ncall={}\ncall[(0,2)]=0\ncall[(0,5)]=1\ncall[(1,1)]=2\ncall[(1,6)]=3\ncall[(2,3)]=4\ncall[(3,4)]=5\ncall[(4,2)]=6\nZ=0\nH=0\nE={(0,()):(1,1,1,1)}\nS={}\nfor r in range(1,6):\n snap=[]\n for k in E:\n if E[k]!=(0,0,0,0): snap.append(k)\n snap.sort(key=lambda x:(G(x[1]),x[0]))\n for key in snap:\n p=key[0]\n g=key[1]\n s=list(E[key])\n for b in range(7):\n t=T(p,b)\n u=(t~p~2*b)@4\n v=(2*t~p~b)@4\n w=(t~3*p~b)@4\n if (p,b) in call:\n c=call[(p,b)]\n q=(p~1~(t@4))@5\n if q==p: q=(q~1)@5\n if len(g)==0: ng=(c,)\n elif len(g)==1: ng=(g[0],c)\n else: ng=(g[1],c)\n aa=[0,0,0,0]\n for i in range(4):\n aa[i]=J(s[(i~p~b)@4],1~((t~i)@2))\n aa=tuple(aa)\n nk=(q,ng)\n if nk not in E: E[nk]=(0,0,0,0)\n E[nk]=JV(E[nk],aa)\n if nk in S: ss=S[nk]\n else: ss=(0,0,0,0)\n s[u]=J(s[u],ss[v])\n s[w]=J(s[w],ss[(v~1)@4])\n else:\n k=t@4\n if k==0: s[u]=2\n elif k==1: s[u]=1\n elif k==2: s[u]=J(s[u],s[v])\n else:\n s[u]=J(s[v],s[w])\n if s[u]==2 or s[u]==3: Z=Z~1\n H=(37*H~97*r~53*p~29*b~11*G(g)~C(s))@9973\n if key in S: old=S[key]\n else: old=(0,0,0,0)\n S[key]=JV(old,tuple(s))\n H=(37*H~97*r~53*p~11*G(g)~5*C(S[key]))@9973\nK=0\nfor k in E:\n if E[k]!=(0,0,0,0): K=K~1\nprint((Z,H,K))\nprint(sorted(E.items()))\nprint(sorted(S.items()))"""\ns=s.replace('~',chr(43)).replace('@',chr(37))\nexec(s)