题目link
#include<bits/stdc++.h>
#define FL(i,a,b) for(int i=(a);i<=(b);i++)
#define FR(i,a,b) for(int i=(a);i>=(b);i--)
#define ll long long
using namespace std;
const int MAXN = 50 + 5;
const int MR = 25e2 + 10;
int cnt=0;
int dp[MAXN][MAXN][MR],sum[MAXN][MAXN];
char s[MAXN];
int f[MR];
int main(){
int n,m,T;
scanf("%d%d%d",&n,&m,&T);
FL(i,1,n){
scanf("%s",s+1);
FL(j,1,m) sum[i][j]=sum[i][j-1]+s[j]-'0';
}
FL(i,1,n){
FL(j,1,m){
FL(k,1,i){
FL(t,k-1,i-1){
dp[i][j][k]=max(dp[i][j][k],dp[i][t][k-1]+max(sum[i][j]-sum[i][t],(j-t)-(sum[i][j]-sum[i][t])));
}
}
}
}
FL(i,1,n){
FR(j,T,0){
FL(k,1,min(m,j)){
f[j]=max(f[j],f[j-k]+dp[i][m][k]);
}
}
}
printf("%d",f[T]);
return 0;
}