rt
#include<bits/stdc++.h>
using namespace std;
char a[505][505];
int dp[505][505][2];
signed main(){
int t;
cin >> t;
while (t --) {
int n, m, x;
cin >> n >> m >> x;
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++){
cin >> a[i][j];
}
}
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
for (int k = 0; k <= x; k ++) {
if (a[i][j] == '0') dp[i][j][k % 2] = max(dp[i - 1][j][k % 2], dp[i][j - 1][k % 2]);
if (a[i][j] == '1') dp[i][j][k % 2] = max(dp[i - 1][j][k % 2], dp[i][j - 1][k % 2]) + 1;
if (a[i][j] == '?')
if (k % 2 == 0) dp[i][j][k % 2] = max(dp[i - 1][j][k % 2], dp[i][j - 1][k % 2]);
else dp[i][j][k % 2]= max(dp[i - 1][j][k % 2 - 1], dp[i][j - 1][k % 2 - 1]) + 1;
}
}
}
int ans = 0;
for (int k = 0; k <= x; k ++) {
ans = max(dp[n][m][k % 2], ans);
}
cout << ans << '\n';
}
return 0;
}