#include using namespace std; #define REP(i,n) for(int i=0; i vec; typedef vector mat; int modGaussElimination(const mat &A, const vec &b, int m, vec &res) { int n = A.size(); mat B(n, vec(n+1)); REP(i,n) REP(j,n) B[i][j] = A[i][j]; REP(i, n) B[i][n] = b[i]; int nowy = 0; REP(x, n) { int pivot = -1; for (int j=nowy; j=0; --y) { int x; for (x=y; x=0; --x) { int sum = B[x][n]; for (int i=n-1; i>x; --i) { sum = modNorm(sum - res[i] * B[x][i], m); } res[x] = sum * invMod(B[x][x], m) % m; } return 1; } int main(void) { int R, C; scanf("%d%d", &R, &C); int n = R * C; vec b(n); mat G(R, vec(C)); for(int r=0; r