#!/usr/bin/env python3 exec("""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 return tuple(J(x[i],y[i]) for i in range(4))\ndef A(*x):\n return sum(x)\ndef M(a,b):\n return a-b*(a//b)\ndef Tf(p,b):\n return M(A(73,29*p,31*b,17*p*b,11*p*p,13*b*b),997)\ndef code(x):\n return A(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 A(1,g[0])\n return A(8,7*g[0],g[1])\ncalls={(0,2):0,(0,5):1,(1,1):2,(1,6):3,(2,3):4,(3,4):5,(4,2):6}\nzero=(0,0,0,0)\nE={(0,()):(1,1,1,1)}\nS={}\nZ=0\nH=0\nfor r in range(1,6):\n snap=[k for k in E.keys() if E[k]!=zero]\n snap.sort(key=lambda k:(G(k[1]),k[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=Tf(p,b)\n u=M(A(T,p,2*b),4)\n v=M(A(2*T,p,b),4)\n w=M(A(T,3*p,b),4)\n if (p,b) in calls:\n c=calls[(p,b)]\n q=M(A(p,1,M(T,4)),5)\n if q==p:\n q=M(A(q,1),5)\n if len(g)==0:\n gg=(c,)\n elif len(g)==1:\n gg=(g[0],c)\n else:\n gg=(g[1],c)\n a=[0,0,0,0]\n for i in range(4):\n a[i]=J(s[M(A(i,p,b),4)],A(1,M(A(T,i),2)))\n a=tuple(a)\n qk=(q,gg)\n E[qk]=jv(E.get(qk,zero),a)\n Ss=S.get(qk,zero)\n s[u]=J(s[u],Ss[v])\n s[w]=J(s[w],Ss[M(A(v,1),4)])\n else:\n k=M(T,4)\n if k==0:\n s[u]=2\n elif k==1:\n s[u]=1\n elif k==2:\n 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:\n Z=A(Z,1)\n H=M(A(37*H,97*r,53*p,29*b,11*G(g),code(s)),9973)\n S[key]=jv(S.get(key,zero),tuple(s))\n H=M(A(37*H,97*r,53*p,11*G(g),5*code(S[key])),9973)\nK=0\nfor k in E:\n if E[k]!=zero:\n K=A(K,1)\nprint((Z,H,K))""")