#include <bits/stdc++.h>
using namespace std;
typedef unsigned int u32;
constexpr int K=32;
void matrix_multiply(int n,const int *A,const int *B,int *C){
for(int ii=0;ii<n;ii+=K){
for(int kk=0;kk<n;kk+=K){
for(int jj=0;jj<n;jj+=K){
int ri=min(K,n-ii);
int rk=min(K,n-kk);
int rj=min(K,n-jj);
int pa=ii*n+kk;
int pb=kk*n+jj;
int pc=ii*n+jj;
for(int i=0;i<ri;++i){
for(int k=0;k<rk;++k){
for(int j=0;j<rj;++j){
C[pc+i*n+j]+=(u32)A[pa+i*n+k]*B[pb+k*n+j];
}
}
}
}
}
}
}