#include #include #include typedef long long int int64; #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<(b)?(a):(b)) #define ABS(a) ((a)>(0)?(a):-(a)) const int l=2; const int mod=1000000007; #define POS(i,j) ((i)*l+(j)) void matmul(int *c,const int *a,const int *b){ int x[4]; int i,j,k; for(i=0;i0){ if(n&0x01) matmul(t,t,s); matmul(s,s,s); n>>=1; } for(i=0;i