#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int n,d,m,T,k;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
long long sum;
int vis[N][N];
char mp[N][N];
long long cnt=0;
long long dfs(int xx,int yy){
if(k==0) return sum;
k--;
if(xx+dx[d]<=n&&xx+dx[d]>=1&&yy+dy[d]<=m&&yy+dy[d]>=1&&mp[xx+dx[d]][yy+dy[d]]=='.'){
if(vis[xx+dx[d]][yy+dy[d]]==0){
sum++;
}
vis[xx+dx[d]][yy+dy[d]]=1;
return dfs(xx+dx[d],yy+dy[d]);
}
else{
d=((d+1)%4);
return dfs(xx,yy);
}
}
int main(){
freopen("T.in","r",stdin);
freopen("T.out","w",stdout);
cin>>T;
while(T--){
cin>>n>>m>>k;
int xx,yy;
cin>>xx>>yy>>d;
vis[xx][yy]=1;
sum++;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
long long t=dfs(xx,yy);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(vis[i][j]==1)
cnt++;
}
}
memset(vis,0,sizeof(vis));
cout<<cnt<<endl;
cnt=0;
}
return 0;
}