rt
#include<bits/stdc++.h>
using namespace std;
const int maxn=50+5;
int n,m,t,ans;
int dp[maxn][2505][2],mx[2505];
char a[maxn][maxn];
void solve()
{
scanf("%d%d%d",&n,&m,&t);
for(int i=1;i<=n;i++){
scanf("%s",a[i]+1);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int k=1;k<=t;k++){
if(j==1){
dp[j][k][0]=mx[k-1];
dp[j][k][1]=mx[k-1]+1;
}
else{
if(a[i][j]==a[i][j-1]){
dp[j][k][0]=dp[j-1][k][0];
dp[j][k][1]=max(dp[j-1][k][1],dp[j-1][k-1][0])+1;
}
else{
dp[j][k][0]=max(dp[j-1][k][1],dp[j-1][k-1][0]);
dp[j][k][1]=max(dp[j-1][k][0],dp[j-1][k-1][1])+1;
}
}
if(j==m){
mx[k]=max({mx[k],dp[j][k][0],dp[j][k][1]});
ans=max(ans,mx[k]);
}
}
}
}
printf("%d\n",ans);
}
signed main()
{
solve();
return 0;
}
//dyyyyds