测试点7 8 9 TLE , 1 2 3 10 WA
//
// Created by Botter on 2024/1/4.
//
#include "iostream"
using namespace std;
int c , r , k;
long long ans;
char map[105][105];
bool visit[105][105];
void dfs(int x , int y , int index){
if (x < 1 || x > c || y < 1 || y > r ||visit[x][y] || map[x][y] == '#') return ;
if (index == k) {
ans++;
return ;
}
visit[x][y] = true;
dfs(x-1,y,index+1);
dfs(x+1,y,index+1);
dfs(x,y-1,index+1);
dfs(x,y+1,index+1);
visit[x][y] = false;
}
int main(){
cin >> c >> r >> k;
for (int i = 1 ; i <= c ; i++){
for (int j = 1 ; j <= r ; j++){
cin >> map[i][j];
}
}
for (int i = 1 ; i <= c ; i++) {
for (int j = 1; j <= r; j++) {
if (map[i][j] == '.') {
dfs(i, j, 1);
map[i][j] = '#';
}
}
}
cout << ans;
return 0;
}
/*
5 5 1
.###.
##.#.
..#..
#..#.
#.###
*/