#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int m,n,ans; int mat[101][101],vis[101][101]; bool v[101][101]; int Dfs(int x,int y) { if(x<1||y<1||x>m||y>n) return 0; if(x==m&&y==n) return 1; if(v[x][y]!=false) return vis[x][y]; for(int i=0;i<=mat[x][y];i++) for(int j=0;i+j<=mat[x][y];j++) { if(i!=0||j!=0) { vis[x][y]+=Dfs(x+i,y+j); if(vis[x][y]>=10000) vis[x][y]%=10000; } } v[x][y]=true; return vis[x][y]; } int main() { int t; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); memset(v,false,sizeof(v)); memset(vis,0,sizeof(vis)); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) scanf("%d",&mat[i][j]); printf("%d ",Dfs(1,1)%10000); } return 0; }