#include <bits/stdc++.h>
#define N 1010
using namespace std;
int T, m, n, K, x, y, d;
int dir[4][2] = {0, 1, 1, 0, 0, -1, -1, 0};
char mm[N][N];
bool vis[N][N];
bool ok(int u, int v) // 判断位置(u,v)是否合法
{
if (u < 1 || u > m || v < 1 || v > n)
return 0;
if (mm[u][v] != '.')
return 0;
return 1;
}
int main()
{
cin >> T;
while (T--)
{
memset(vis, 0, sizeof(vis));
scanf("%d%d%d", &m, &n, &K);
scanf("%d%d%d", &x, &y, &d);
for (int i = 1; i <= m; i++)
scanf("%s", mm[i] + 1);
vis[x][y] = 1;
while (K--)
{
int nx, ny;
nx = x + dir[d][0];
ny = y + dir[d][1];
if (!ok(nx, ny))
{
d = (d + 1) % 4;
continue;
}
x = nx, y = ny;
vis[x][y] = 1;
}
int ans = 0;
for (int i = 1; i <= m; i++)
for (int j = 1; j <= n; j++)
if (vis[i][j])
ans++;
printf("%d\n", ans);
}
}
/**************************************************************
Problem: 2410
User: admin
Language: C++
Result: Accepted
Time:229 ms
Memory:4068 kb
****************************************************************/