1 block operator*(block a,block b){ 2 block zz;memset(zz.x,0,sizeof(zz.x)); 3 for(int i=1;i<=4;++i)for(int j=1;j<=4;++j)for(int k=1;k<=4;++k) 4 zz.x[i][j]=(zz.x[i][j]+a.x[i][k]*b.x[k][j]%m)%m; 5 return zz; 6 }