#include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<cstdlib>#include<cmath>#include<stack>#include<map>#include<string>#include<vector>#include<algorithm>usingnamespace std;#define ll long long#define INF 0x3f3f3f3f#define endl '\n'constdouble pi =acos(-1);constint maxn =(30+10)<<1;constint maxm =5e5+10;int n, k, mod;int a[maxn][maxn], bb[maxn][maxn], res[maxn][maxn], tmp[maxn][maxn];voidmul(int a[][maxn],int b[][maxn]){memset(tmp,0,sizeof(tmp));for(int i =1; i <=2* n ;++ i){for(int k =1; k <=2* n ;++ k){for(int j =1; j <=2* n ;++ j){
tmp[i][j]=(tmp[i][j]+ a[i][k]* b[k][j])% mod;}}}for(int i =1; i <=2* n ;++ i){for(int j =1; j <=2* n ;++ j){
a[i][j]= tmp[i][j];}}}voidksm(int a[][maxn],int b){memset(res,0,sizeof(res));for(int i =1; i <= n *2; i ++) res[i][i]=1;while(b){if(b &1)mul(res, a);mul(a, a);
b >>=1;}}intmain(){scanf("%d %d %d",&n,&k,&mod);for(int i =1; i <= n ;++ i){for(int j =1; j <= n ;++ j){scanf("%d",&a[i][j]);
bb[i][j]= a[i][j];}}for(int i =1; i <= n ;++ i){for(int j = n +1; j <=2* n ;++ j){if(i == j - n) bb[i][j]= bb[i+n][j]=1;else bb[i][j]=0;
bb[i+n][j-n]=0;}}ksm(bb, k +1);for(int i =1; i <= n ;++ i){for(int j = n +1; j <= n *2;++ j){printf("%d%c",(res[i][j]- bb[i+n][j]+ mod)% mod, j == n *2?'\n':' ');}}return0;}
#include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<cstdlib>#include<cmath>#include<stack>#include<map>#include<string>#include<vector>#include<algorithm>usingnamespace std;#define ll long long#define INF 0x3f3f3f3f#define endl '\n'constdouble pi =acos(-1);constint maxn =(30+10)<<1;constint maxm =5e5+10;int n, k, mod;int a[maxn], bb[maxn][maxn], res[maxn][maxn], tmp[maxn][maxn];voidmul(int a[][maxn],int b[][maxn],int N){memset(tmp,0,sizeof(tmp));for(int i =1; i <= N ;++ i){for(int k =1; k <= N ;++ k){for(int j =1; j <= N ;++ j){
tmp[i][j]=(tmp[i][j]+ a[i][k]* b[k][j])% mod;}}}for(int i =1; i <= N ;++ i){for(int j =1; j <= N ;++ j){
a[i][j]= tmp[i][j];}}}voidksm(int a[][maxn],int b,int N){memset(res,0,sizeof(res));for(int i =1; i <= N ; i ++) res[i][i]=1;while(b){if(b &1)mul(res, a, N);mul(a, a, N);
b >>=1;}}intmain(){while(~scanf("%d %d",&k,&mod)){if(k <10){
cout << k << endl;continue;}for(int i =1; i <=10;++ i)scanf("%d",&a[i]);for(int i =1; i <=10;++ i){if(i ==1){for(int j =1; j <=10;++ j) bb[i][j]= a[j];continue;}for(int j =1; j <=10;++ j){if(i -1== j) bb[i][j]=1;else bb[i][j]=0;}}ksm(bb, k -9,10);int ans =0;for(int i =1; i <=10;++ i){
ans =(ans + res[1][i]*(10-i))% mod;}
cout << ans << endl;}return0;}