//知识难点:字符串输入、坐标确认、多组数据处理、初始化函数memset使用、题目阅读
#include<bits/stdc++.h>
using namespace std;
int t, n, m, k ;
int x00, y00, d0;//全局变量不能定义y0
char a[1010][1010];
bool b[1010][1010];
int dx[4]={0, 1, 0, -1};
int dy[4]={1, 0, -1, 0};
//以上代码也可写成//int dxy[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
void test(){
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++)
cout<<a[i][j];
cout<<endl;
}
}
int main()
{
cin>>t;
while(t--){
int ans=0;//每组初始化为0
memset(b, 0, sizeof(b));//标记轨迹初始化为0
cin>>n>>m>>k;
cin>>x00>>y00>>d0;
b[x00][y00]=1;
for(int i=1; i<=n; i++)cin>>a[i]+1;//+1是为了输入从第1列而非第0列开始
//test();
for(int i=1; i<=k; i++){
int x=x00+dx[d0];//将要走的坐标
int y=y00+dy[d0];
if(a[x][y]=='.'){
b[x][y]=1;
x00=x; y00=y;
}
else{
d0=(d0+1)%4;
}
}
for(int i=1; i<=n; i++)//统计走过的痕迹
for(int j=1; j<=m; j++)
if(b[i][j]==1)
ans++;
cout<<ans<<endl;
}
return 0;
}