#include<cstdio>
#include<algorithm>
using namespace std;
#define N 51
#define M 2501
int n,m,t,s1[N][N],s2[N][N],f[N][N],h[N][N],dp[N][M];
char str[N];
inline int sum1(int i,int l,int r){
return s1[i][r]-s1[i][l-1];
}
inline int sum2(int i,int l,int r){
return s2[i][r]-s2[i][l-1];
}
int main(){
scanf("%d%d%d",&n,&m,&t);
for(int i=1;i<=n;i++){
scanf("%s",str+1);
for(int j=1;j<=m;j++){
s1[i][j]=s1[i][j-1];
s2[i][j]=s2[i][j-1];
str[j]==‘1‘?s1[i][j]++:s2[i][j]++;
}
}
for(int i=1;i<=n;i++){//行
for(int j=1;j<=m;j++){//前j个数
for(int k=1;k<=min(t,j);k++){//分成k份
f[j][k]=0;//注意f是每行重复使用的,需要清零!
for(int u=k-1;u<=j-1;u++){//分割点
f[j][k]=max(f[j][k],f[u][k-1]+max(sum1(i,u+1,j),sum2(i,u+1,j)));
}
}
}
for(int k=1;k<=min(t,m);k++){
h[i][k]=f[m][k];
}
}
for(int i=1;i<=n;i++){
for(int k=1;k<=t;k++){
for(int x=0;x<=k;x++){
dp[i][k]=max(dp[i][k],dp[i-1][k-x]+h[i][x]);
}
}
}
printf("%d",dp[n][t]);
return 0;
}