#define MD 998244353 ll@x1,@y1; Mint a=x1,b=y1,d=(a-1)*(a-1)+5b*b; ll@n; if(d==0){ if(n==1){ wt(a,b); }else{ Mint x2=a*a-5b*b; Mint y2=2a*b; Mint x3=a*x2-5b*y2; Mint y3=a*y2+b*x2; Mint r=x2==0?y3/y2:x3/x2; r**=n-2; wt(x2*r,y2*r); } exit(0); } Matrix<Mint>m(2,2),e(2,2),o(2,2); m[0][0]=a; m[0][1]=-5b; m[1][0]=b; m[1][1]=a; m**=n; e[0][0]=1; e[0][1]=0; e[1][0]=0; e[1][1]=1; m-=e; o[0][0]=a-1; o[0][1]=5b; o[1][0]=-b; o[1][1]=a-1; m*=o; (a,b)=(m[0][0]*a+m[0][1]*b,m[1][0]*a+m[1][1]*b)/d; wt(a,b);