def check(i,j):
return i>=0 and i<n and j>=0 and j<m
def DFS(x, y):
if dp[x][y]:
return dp[x][y]
else:
result = 0
for energy in range(1, arr[x][y]+1):
sum_ij = (x+y) + energy
for i in range(x, sum_ij-y+1):
j = sum_ij - i
if check(i,j):
num_path = DFS(i,j)
dp[i][j] = num_path
result = (result + num_path) % MOD
return result
MOD = 10000
T = int(input())
for _ in range(T):
arr = []
n,m = list(map(int, input().split()))
for _ in range(n):
arr.append(list(map(int, input().split())))
if n==1 and m==1:
print(1)
else:
dp = [[None]*m for _ in range(n)]
dp[n-1][m-1] = 1
print(DFS(0,0))