ll@n,@b,@q; modint().setmod(b); Matrixm[n+1]; rep(i,n+1)m[i].changeSize(2,2); m[0]=1; rep(i,n){ Matrixc(2,2); rd(c(2,2)); m[i+1]=c*m[i]; } rep(q){ ll@l,@r; Matrixc(2,2); c[0][0]=m[l][1][1]; c[0][1]=-m[l][0][1]; c[1][0]=-m[l][1][0]; c[1][1]=m[l][0][0]; Matrixv(2,1); rd(v(2,1)); v=m[r]*(c*v); wt(v[0][0],v[1][0]); }