#include<bits/stdc++.h>
using namespace std;
// #Backtracking
int numPaths(vector<vector<int> > a, int r, int c, map< pair<int,int>, int > &memo);
int main(){
//freopen("ip.txt","r",stdin);
int t;
cin>>t;
while(t--){
int r,c;
cin>>r>>c;
vector< vector<int> > a(r);
for(int i=0;i<a.size();i++){
a[i].resize(c);
for(int j=0;j<a[i].size();j++){
cin>>a[i][j];
}
}
map< pair<int,int>, int > memo;
cout<<numPaths(a,0,0,memo)<<endl;
}
return 0;
}
int numPaths(vector<vector<int> > a, int r, int c, map< pair<int,int>, int > &memo){
if(r==a.size()-1 && c==a[r].size()-1 && a[r][c]==0){
memo[{r,c}]=1;
return memo[{r,c}];
}
if(memo.find({r,c})!=memo.end()){
return memo[{r,c}];
}
if(r<a.size() && c<a[r].size() && a[r][c]==0){
memo[{r,c}]=numPaths(a,r+1,c,memo)+numPaths(a,r,c+1,memo);
return memo[{r,c}];
}
return 0; // else no paths
}