/*
先处理table的输入,再计算每列的连续oo的长度用vector存储,然后根据每一段连续oo的长度降序排列每一段连续oo。二维的问题就变成一维的了,最后再根据题目要求计算即可
*/
#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
long long k;
cin >> k;
vector<vector<char>>table(n, vector<char>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
char tmp;
cin >> tmp;
table[i][j] = tmp;
}
}
if (k == 1) {
cout << '0' << '\n';
return 0;
}
vector<string>list;
for (int j = 0; j < m; j++) {
string temp;
for (int i = 0; i < n; i++) {
temp += table[i][j];
}
list.push_back(temp);
temp.clear();
}
vector<int>list_continue_o_len;
for (string s : list) {
int continue_o = 0;
for (char c : s) {
if (c == 'o') {
continue_o++;
}
if (c != 'o') {
list_continue_o_len.push_back(continue_o);
continue_o = 0;
}
}
if (continue_o != 0) {
list_continue_o_len.push_back(continue_o);
}
}
sort(list_continue_o_len.begin(), list_continue_o_len.end(), greater<int>());
int count = 0;
for (int co : list_continue_o_len) {
if (k >= co) {
count += co;
count--;
k -= co;
} else if (k > 1 && k < co) {
count += k;
count--;
k = 0;
}
if (k == 0) {
cout << count << '\n';
return 0;
}
}
cout << count << '\n';
}
// 64 位输出请用 printf("%lld")