#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#define maxn 55
#define maxm 2505
using namespace std;
int n,m,t;
string s[maxn];
vector<int>len[maxn];
int f[maxn][maxn][maxm][3];
int main()
{
cin>>n>>m>>t;
for(int i=1;i<=n;i++){
cin>>s[i];
s[i]=' '+s[i];
int tot=1;
for(int j=2;j<=m;j++){
if(s[i][j]==s[i][j-1]) tot++;
else{
len[i].push_back(tot);
tot=1;
}
}
if(tot){
len[i].push_back(tot);
}
}
for(int i=1;i<=n;i++){
for(int j=0;j<len[i].size();j++){
for(int k=1;k<=t;k++){
if(!j){
int m=len[i-1].size()-1;
if(m<0) m=0;
f[i][j][k][0]=max(f[i-1][m][k][0],max(f[i-1][m][k][1],f[i-1][m][k][2]));
f[i][j][k][1]=max(f[i-1][m][k-1][0],max(f[i-1][m][k-1][1],f[i-1][m][k-1][2]))+len[i][j];
f[i][j][k][2]=max(f[i-1][m][k-1][0],max(f[i-1][m][k-1][1],f[i-1][m][k-1][2]));
}
else{
f[i][j][k][0]=max(f[i][j-1][k][0],max(f[i][j-1][k][1],f[i][j-1][k][2]));
f[i][j][k][1]=max(f[i][j-1][k-1][0]+len[i][j],max(f[i][j-1][k-1][1]+len[i][j],f[i][j-1][k][2]+len[i][j]));
f[i][j][k][2]=max(f[i][j-1][k-1][0],max(f[i][j-1][k][1],f[i][k-1][k-1][2]));
}
}
}
}
int ans=0;
for(int i=1;i<=t;i++){
int k=len[n].size()-1;
if(k<0) k=0;
ans=max(ans,max(f[n][k][i][0],max(f[n][k][i][1],f[n][k][i][2])));
}
cout<<ans<<endl;
return 0;
}
第6 8 9个点RE