我推的矩阵:
p1101000000q000000000010u0100000000v100000001010x1000000000y000000r0001012000t00000010001000201110000w000000W00000z00000Z和:
a2a1b2b1c2c1kk2111#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,a[12][12],ans[12][12],m,p,q,r,t,u,v,w,x,y,z,ai,bi,ci;
inline ll input(){
ll sb=0,bs=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') bs=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
sb=(sb<<1)+(sb<<3)+(ch^48);
ch=getchar();
}
return sb*bs;
}
void print(ll sb){
if(sb<0){
putchar('-');
sb=-sb;
}
if(sb>9){
print(sb/10);
putchar(sb%10+'0');
}
else putchar(sb+'0');
return;
}
void chen1(){
ll c[12][12];
for(int i=1;i<=11;i++)for(int j=1;j<=11;j++)c[i][j]=ans[i][j];
memset(ans,0,sizeof(ans));
for(int i=1;i<=11;i++)for(int j=1;j<=11;j++)for(int k=1;k<=11;k++)ans[i][j]=(ll)(__int128(ans[i][j]+__int128(c[i][k]*a[k][j])%m)%m)%m;
}
void chen2(){
ll c[12][12];
for(int i=1;i<=11;i++)for(int j=1;j<=11;j++)c[i][j]=a[i][j];
memset(a,0,sizeof(a));
for(int i=1;i<=11;i++)for(int j=1;j<=11;j++)for(int k=1;k<=11;k++)a[i][j]=(ll)(__int128(a[i][j]+__int128(c[i][k]*c[k][j])%m)%m)%m;
}
void km(ll n){
while(n){
if(n&1) chen1();
chen2();
n>>=1;
}
}
int main(){
n=input(),m=input(),p=input(),q=input(),r=input(),t=input(),u=input(),v=input(),w=input(),x=input(),y=input(),z=input();
n-=2;
for(int i=1;i<=11;i++) ans[i][i]=1;
a[1][1]=p,a[1][2]=q,a[1][3]=1,a[1][5]=1,a[1][7]=r,a[1][8]=t,a[1][9]=1,a[2][1]=1,a[3][1]=1,a[3][3]=u,a[3][4]=v,a[3][5]=1,a[3][10]=w,a[4][3]=1,a[5][1]=1,a[5][3]=1,a[5][5]=x,a[5][6]=y,a[5][7]=1,a[5][9]=2,a[5][11]=z,a[6][5]=1,a[7][7]=1,a[7][9]=1,a[8][7]=2,a[8][8]=1,a[8][9]=1,a[9][9]=1,a[10][10]=w,a[11][11]=z;
km(n);
ai=(ll)(__int128(ans[1][1]*3+ans[1][2]+ans[1][3]*3+ans[1][4]+ans[1][5]*3+ans[1][6]+ans[1][7]+ans[1][8]+ans[1][9]+ans[1][10]+ans[1][11])%m);
bi=(ll)(__int128(ans[3][1]*3+ans[3][2]+ans[3][3]*3+ans[3][4]+ans[3][5]*3+ans[3][6]+ans[3][7]+ans[3][8]+ans[3][9]+ans[3][10]+ans[3][11])%m);
ci=(ll)(__int128(ans[5][1]*3+ans[5][2]+ans[5][3]*3+ans[5][4]+ans[5][5]*3+ans[5][6]+ans[5][7]+ans[5][8]+ans[5][9]+ans[5][10]+ans[5][11])%m);
printf("nodgd "),print(ai),printf("\n"),printf("Ciocio "),print(bi),printf("\n"),printf("Nicole "),print(ci);
return 0;
}