#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void Main() { int H,W,K; cin >> H >> W >> K; vector S(H); for(int i = 0;i < H;i++) { cin >> S[i]; } const int L = 26; vector>> dp(H,vector>(W,vector(L + 1))); for(int k = 0;k <= L;k++) { for(int i = H - 1;i >= 0;i--) { for(int j = W - 1;j >= 0;j--) { dp[i][j][k] = min(H - i,W - j) + 1; if(S[i][j] == char('a' + k)) { dp[i][j][k] = 1; } if(i + 1 < H) { dp[i][j][k] = min(dp[i][j][k],dp[i + 1][j][k] + 1); } if(j + 1 < W) { dp[i][j][k] = min(dp[i][j][k],dp[i][j + 1][k] + 1); } if(i + 1 < H && j + 1 < W) { dp[i][j][k] = min(dp[i][j][k],dp[i + 1][j + 1][k] + 1); } } } } long long ans = 0; for(int i = 0;i < H;i++) { for(int j = 0;j < W;j++) { sort(dp[i][j].begin(),dp[i][j].end()); ans += dp[i][j][K] - dp[i][j][K - 1]; } } cout << ans << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) Main(); }