#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(ll i=0;i<n;i++)
#define repl(i,l,r) for(ll i=(l);i<(r);i++)
#define per(i,n) for(ll i=n-1;i>=0;i--)
#define perl(i,r,l) for(ll i=r-1;i>=l;i--)
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define ins insert
#define pqueue(x) priority_queue<x,vector<x>,greater<x>>
#define all(x) (x).begin(),(x).end()
#define CST(x) cout<<fixed<<setprecision(x)
#define vtpl(x,y,z) vector<tuple<x,y,z>>
#define at(x,i) get<i>(x);
#define rev(x) reverse(x);
using ll=long long;
using vl=vector<ll>;
using vvl=vector<vector<ll>>;
using pl=pair<ll,ll>;
using vpl=vector<pl>;
using vvpl=vector<vpl>;
const ll MOD=1000000007;
const ll MOD9=998244353;
const int inf=1e9+10;
const ll INF=4e18;
const ll dy[8]={1,0,-1,0,1,1,-1,-1};
const ll dx[8]={0,-1,0,1,1,-1,1,-1};
template<class T> inline bool chmin(T& a, T b) {
    if (a > b) {
        a = b;
        return true;
    }
    return false;
}
template<class T> inline bool chmax(T& a, T b) {
    if (a < b) {
        a = b;
        return true;
    }
    return false;
}
int main(){
    ll h,w,cc;cin >> h >> w >>cc;
    vvl f(h,vl(w));
    rep(i,h){
        rep(j,w){
            char x;cin >> x;
            f[i][j]=x-'0';
        }
    }
    ll ans=0;
    rep(i,h){
        rep(j,w){
            vvl z=f;
            ll tmp=0;
            per(k,i){
                z[k+1][j]=z[k][j];
            }
            z[0][j]=0;
            bool check=true;
            ll bonus=1;
            while(check){
                ll pre=tmp;
                vvl dist(h,vl(w,0));
                rep(k,h){
                    ll x=z[k][0];
                    ll cnt=0;
                    rep(l,w){
                        if(x!=z[k][l]){
                            if(cnt>=cc){
                                tmp+=cnt*x*bonus;
                                rep(m,k){
                                    rep(o,cnt){
                                        dist[m][l-1-o]+=1;
                                    }
                                }
                            }
                            x=z[k][l];
                            cnt=1;
                        }
                        else cnt++;
                    }
                    if(cnt>=cc){
                        tmp+=cnt*x*bonus;
                        rep(m,k){
                            rep(o,cnt){
                                dist[m][w-1-o]+=1;
                            }
                        }
                    }
                }
                per(k,h){
                    rep(l,w){
                        if(dist[k][l]!=0){
                            z[k+dist[k][l]][l]=z[k][l];
                            z[k][l]=0;
                        }
                    }
                }
                /*if(i==3&&j==2){
                    rep(xx,h){
                        rep(yy,w){
                            cout << z[xx][yy] <<" ";
                        }
                        cout <<endl;
                    }
                    rep(xx,h){
                        rep(yy,w){
                            cout << dist[xx][yy] <<" ";
                        }
                        cout <<endl;
                    }
                    cout << tmp <<endl;
                }*/
                if(pre==tmp)check=false;
                bonus*=2;
            }
            chmax(ans,tmp);
        }
    }
    cout << ans <<endl;
}

Measured memory_bytes: 256