n, m, k = map(int, input().split())
grid = [input() for _ in range(n)]
#统计所有可得分的染色块(大于1)
res = []#存储所有可以染色计分的块
for j in range(m):
cur = 0
for i in range(n):
if grid[i][j]=='o':
cur += 1
else:
if cur>=2:#染色块大于2
res.append(cur)
cur = 0
if cur>=2:#查看剩余染色快大小
res.append(cur)
#统计给染色块染色可获取最大的分数
res.sort(reverse=True)#将获得的块降序排列,以获得最大分数(减小无效染色块)
if k >= sum(res):#如果染色数量足够给所有染色快染色
print(sum(res) - len(res))
else:#如果染色数量不足以给所有染色快染色
ans = 0
for c in res:
if k > c:#还能继续染色
ans += c - 1
k -= c
else:#无法继续染色
ans += k - 1
k = 0
break
print(ans)#输出染色块计分数