{ ll@n;Mint@a,@b,@k; Polynomial p,m,r; p.change(1,1); m.change(2,1); m.change(1,-(a*a+b*b+k)/(a*b)); m.change(0,1); r.change(0,1); n-=1; while(n){ if(n&1){ r=r*p%m; } n>>=1; p=p*p%m; } wt(r.coef(0)*a+r.coef(1)*b); }