#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define wt(v) ({unsigned _z=v;do*--wp=_z%10+48;while(_z/=10);}) #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) #define rep(v,e) for(typeof(e) v=0;v=6){ ++j; continue; } if(i!=k){ reps(l,j,6){ b[i][l]^=b[k][l]; } } reps(k,i+1,6){ if(b[k][j]){ reps(l,j+1,6){ b[k][l]^=b[i][l]; } } } ++i; ++j; z*=2; } } // 5 { unsigned b[6][6]; rep(y,6){ rep(x,6){ b[y][x]=(unsigned)(r[y][x]-'0')%5; } } int i=0,j=0; while(j<6){ int k; for(k=i;k<6&&!b[k][j];++k){ } if(k>=6){ ++j; continue; } if(i!=k){ reps(l,j,6){ b[i][l]=(b[i][l]+b[k][l])%5; } } reps(k,i+1,6){ unsigned v=b[i][j]; v=v*v*v*b[k][j]*4%5; reps(l,j+1,6){ b[k][l]=(b[k][l]+b[i][l]*v)%5; } } ++i; ++j; z*=5; } } wt1(z); _exit(0); }