import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
{
// your code goes here
Scanner sc
=new Scanner
(System.
in); int t=sc.nextInt();
while(t-->0){
int n=sc.nextInt();
int m=sc.nextInt();
int[][]val=new int[n+1][m+1];
// number of paths having even sum
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
val[i][j]=sc.nextInt();
}
}
int out=solve(n,m,val);
}
sc.close();
}
public static int solve(int n,int m,int[][]val){
int [][][]dp=new int[n+1][m+1][3];
if (val[1][1]%2==0)dp[1][1][2] = 1;
else dp[1][1][1]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i==1&&j==1)continue;
if(val[i][j]%2==0){
dp[i][j][2]=dp[i][j-1][2]+dp[i-1][j][2];
dp[i][j][1]=dp[i][j-1][1]+dp[i-1][j][1];
}else{
dp[i][j][2]=dp[i][j-1][1]+dp[i-1][j][1];
dp[i][j][1]=dp[i][j-1][2]+dp[i-1][j][2];
}
}
}
return dp[n][m][2];
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBDb2RlY2hlZgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWludCB0PXNjLm5leHRJbnQoKTsKCQl3aGlsZSh0LS0+MCl7CgkJICAgIGludCBuPXNjLm5leHRJbnQoKTsKCQkgICAgaW50IG09c2MubmV4dEludCgpOwoJCSAgICBpbnRbXVtddmFsPW5ldyBpbnRbbisxXVttKzFdOwoJCSAgICAvLyBudW1iZXIgb2YgcGF0aHMgaGF2aW5nIGV2ZW4gc3VtCgkJICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKCQkgICAgICAgIGZvcihpbnQgaj0xO2o8PW07aisrKXsKCQkgICAgICAgICAgICB2YWxbaV1bal09c2MubmV4dEludCgpOwoJCSAgICAgICAgfQoJCSAgICB9CgkJICAgIGludCBvdXQ9c29sdmUobixtLHZhbCk7CgkJICAgIFN5c3RlbS5vdXQucHJpbnRsbihvdXQpOwoJCX0KCQlzYy5jbG9zZSgpOwoJfQoJcHVibGljIHN0YXRpYyBpbnQgc29sdmUoaW50IG4saW50IG0saW50W11bXXZhbCl7CgkgICAgaW50IFtdW11bXWRwPW5ldyBpbnRbbisxXVttKzFdWzNdOwoJICAgIGlmICh2YWxbMV1bMV0lMj09MClkcFsxXVsxXVsyXSA9IDE7CgkgICAgZWxzZSBkcFsxXVsxXVsxXT0xOwoJICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKCSAgICAgICAgZm9yKGludCBqPTE7ajw9bTtqKyspewoJICAgICAgICAgICAgaWYoaT09MSYmaj09MSljb250aW51ZTsKCSAgICAgICAgICAgIGlmKHZhbFtpXVtqXSUyPT0wKXsKCSAgICAgICAgICAgICAgICBkcFtpXVtqXVsyXT1kcFtpXVtqLTFdWzJdK2RwW2ktMV1bal1bMl07CgkgICAgICAgICAgICAgICAgZHBbaV1bal1bMV09ZHBbaV1bai0xXVsxXStkcFtpLTFdW2pdWzFdOwoJICAgICAgICAgICAgfWVsc2V7CgkgICAgICAgICAgICAgICAgZHBbaV1bal1bMl09ZHBbaV1bai0xXVsxXStkcFtpLTFdW2pdWzFdOwoJICAgICAgICAgICAgICAgIGRwW2ldW2pdWzFdPWRwW2ldW2otMV1bMl0rZHBbaS0xXVtqXVsyXTsKCSAgICAgICAgICAgIH0KCSAgICAgICAgfQoJICAgIH0KCSAgICByZXR1cm4gZHBbbl1bbV1bMl07Cgl9Cn0=