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 y=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,y);
}
sc.close();
}
public static int solve(int n,int m,int[][]val,int y){
if(y>2000) return -1; // not possible
int [][][]dp=new int[n+1][m+1][2001];
dp[1][1][val[1][1]]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int k=0;k<=2000;k++){
if(i==1&&j==1)continue;
int rem=k-val[i][j];
if(i>1&&rem>=0){
dp[i][j][k]+=dp[i-1][j][rem];
}
if(j>1&&rem>=0){
dp[i][j][k]+=dp[i][j-1][rem];
}
}
}
}
return dp[n][m][y];
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBDb2RlY2hlZgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWludCB0PXNjLm5leHRJbnQoKTsKCQl3aGlsZSh0LS0+MCl7CgkJICAgIGludCBuPXNjLm5leHRJbnQoKTsKCQkgICAgaW50IG09c2MubmV4dEludCgpOwoJCSAgICBpbnQgeT1zYy5uZXh0SW50KCk7CgkJICAgIGludFtdW112YWw9bmV3IGludFtuKzFdW20rMV07CgkJICAgIC8vIG51bWJlciBvZiBwYXRocyBoYXZpbmcgZXZlbiBzdW0KCQkgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewoJCSAgICAgICAgZm9yKGludCBqPTE7ajw9bTtqKyspewoJCSAgICAgICAgICAgIHZhbFtpXVtqXT1zYy5uZXh0SW50KCk7CgkJICAgICAgICB9CgkJICAgIH0KCQkgICAgaW50IG91dD1zb2x2ZShuLG0sdmFsLHkpOwoJCSAgICBTeXN0ZW0ub3V0LnByaW50bG4ob3V0KTsKCQl9CgkJc2MuY2xvc2UoKTsKCX0KCXB1YmxpYyBzdGF0aWMgaW50IHNvbHZlKGludCBuLGludCBtLGludFtdW112YWwsaW50IHkpewoJICAgIGlmKHk+MjAwMCkgcmV0dXJuIC0xOyAgICAvLyBub3QgcG9zc2libGUKCSAgICBpbnQgW11bXVtdZHA9bmV3IGludFtuKzFdW20rMV1bMjAwMV07CgkgICAgZHBbMV1bMV1bdmFsWzFdWzFdXT0xOwoJICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKCSAgICAgICAgZm9yKGludCBqPTE7ajw9bTtqKyspewoJICAgICAgICAgICAgZm9yKGludCBrPTA7azw9MjAwMDtrKyspewoJICAgICAgICAgICAgICAgIGlmKGk9PTEmJmo9PTEpY29udGludWU7CgkgICAgICAgICAgICAgICAgaW50IHJlbT1rLXZhbFtpXVtqXTsKCSAgICAgICAgICAgICAgICBpZihpPjEmJnJlbT49MCl7CgkgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdW2tdKz1kcFtpLTFdW2pdW3JlbV07CgkgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgIGlmKGo+MSYmcmVtPj0wKXsKCSAgICAgICAgICAgICAgICAgICAgZHBbaV1bal1ba10rPWRwW2ldW2otMV1bcmVtXTsKCSAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICB9CgkgICAgICAgIH0KCSAgICB9CgkgICAgcmV0dXJuIGRwW25dW21dW3ldOwoJfQp9