# 気合で頑張らなくていいじゃん mod = 10**9+7 H,W = map(int,input().split()) A = [ list(map(int,input().split())) for i in range(H) ] LU = [[ A[i][j] for j in range(W)] for i in range(H)] LD = [[ A[i][j] for j in range(W)] for i in range(H)] RU = [[ A[i][j] for j in range(W)] for i in range(H)] RD = [[ A[i][j] for j in range(W)] for i in range(H)] for i in range(H): for j in range(W-1): LU[i][j+1] *= LU[i][j] LU[i][j+1] %= mod LD[i][j+1] *= LD[i][j] LD[i][j+1] %= mod for i in range(H): for j in range(W-1,0,-1): RU[i][j-1] *= RU[i][j] RU[i][j-1] %= mod RD[i][j-1] *= RD[i][j] RD[i][j-1] %= mod for j in range(W): for i in range(H-1): LU[i+1][j] *= LU[i][j] LU[i+1][j] %= mod RU[i+1][j] *= RU[i][j] RU[i+1][j] %= mod for j in range(W): for i in range(H-1,0,-1): LD[i-1][j] *= LD[i][j] LD[i-1][j] %= mod RD[i-1][j] *= RD[i][j] RD[i-1][j] %= mod Q = int(input()) for _ in range(Q): r,c = map(int,input().split()) r -= 1 c -= 1 ans = 1 if r != 0 and c != 0: ans *= LU[r-1][c-1] if r != 0 and c != W-1: ans *= RU[r-1][c+1] if r != H-1 and c != 0: ans *= LD[r+1][c-1] if r != H-1 and c != W-1: ans *= RD[r+1][c+1] print (ans % mod)