H, W = map(int, input().split()) mod = 10 ** 9 + 7 A = [] ans = 1 zx, zy = -1, -1 for i in range(H): A.append(list(map(int, input().split()))) for j in range(W): ans *= A[i][j] ans %= mod if A[i][j] == 0: if zx == -1: zx, zy = i, j else: print(0) exit() if zx != -1: ans = 1 for i in range(H): for j in range(W): if i == zx: continue if j == zy: continue ans *= A[i][j] ans %= mod DH, DW = [1] * H, [1] * W for i in range(H): for j in range(W): DH[i] *= A[i][j] DH[i] %= mod DW[j] *= A[i][j] DW[j] %= mod for i in range(H): DH[i] = pow(DH[i], mod - 2, mod) for j in range(W): DW[j] = pow(DW[j], mod - 2, mod) Q = int(input()) for i in range(Q): r, c = map(int, input().split()) r, c = r - 1 , c - 1 if zx == -1: print(ans * DH[r] * DW[c] * A[r][c] % mod) else: if zx == r and zy == c: print(ans) else: print(0)