#include<bits/stdc++.h>
#define int long long
using namespace std;
void read(int &x){
x=0;bool f=0;char ch=getchar();
while(ch>'9'||ch<'0'){
if(ch=='-')f=1;
ch=getchar();
}do{x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}while(ch>='0'&&ch<='9');
x=f?-x:x;
}
int t,n,m,x,dp[501][501][301],ans;
char a[501][501];
signed main(){
read(t);
while(t--){
ans=0,read(n),read(m),read(x);
for(int i=1;i<=n;i++)scanf("%s",a[i]+1);
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int k=x;k>=0;k--){
if(a[i][j]=='?'){
if(k>0)dp[i][j][k]=max(dp[i][j-1][k-1],dp[i-1][j][k-1])+1;
dp[i][j][k]=max(dp[i][j][k],max(dp[i-1][j][k],dp[i][j-1][k]));
}else dp[i][j][k]=max(dp[i][j-1][k],dp[i-1][j][k])+(a[i][j]=='1');
}
}
}for(int i=0;i<=x;i++)ans=max(dp[n][m][i],ans);
cout<<ans<<endl;
}return 0;
}