#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 抄博友程序 模拟 巧妙 背
int dx[8]={0, 1, 1, 1, 0,-1,-1,-1};
int dy[8]={-1,-1,0, 1, 1, 1, 0,-1};
char da[1010][1010];
int speed;
struct nod{
int x,y,d,speed,id;
};
nod p[10010];
int main()
{
int T;
scanf("%d",&T);
int tag=0;
while(T--)
{
tag++;
cout<<"Scenario #"<<tag<<":"<<endl;
int n,m;
scanf("%d%d",&n,&m);
//getchar();
for(int i=0;i<n;i++)
{
scanf("%s",da[i]);
//for(int j=0;j<m;j++)//tle
//{
// scanf("%c",&da[i][j]);
//}
//getchar();
}
/*
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%c",da[i][j]);
}
cout<<endl;
}*/
int tt;
scanf("%d",&tt);
while(tt--)
{
int x,y,d,mx;
scanf("%d%d%d%d",&x,&y,&d,&mx);
//cout<<x<<" "<<y<<" "<<d<<" "<<mx<<endl;
char s[10010];
scanf("%s",s);
//cout<<s<<endl;
speed=0;
int cr=0;
int cnt=0;
for(int i=0;i<strlen(s);i++)//抄博友程序
{
if(s[i]=='a')
{
if(speed<mx)
{
speed++;
}
}
if(s[i]=='b')
{
if(speed>0)
{
speed--;
}
}
if(s[i]=='l')d=(d+7)%8;//抄博友程序 巧妙
if(s[i]=='r')d=(d+1)%8;
int flag=0;
for(int j=0;j<speed;j++)//抄博友程序
{
x=x+dx[d];
y=y+dy[d];
if(da[y][x]=='s')//抄博友程序 da[y][x]
{
p[cnt++]=(nod){x,y,d,speed,i};
}else if(da[y][x]=='W')
{
cr=1;
printf("%d %d %d %d crashed\n",x,y,d,speed);//撞了
break;
}else if(da[y][x]=='.')
{
flag=1;
}
}
if(flag)
{
speed=1;
}
//cout<<da[y][x]<<" "<<x<<" "<<y<<" "<<d<<" "<<speed<<" "<<i<<endl;
if(cr)
{
break;
}
}
if(cr==0)
{
printf("%d %d %d %d\n",x,y,d,speed);
}
for(int i=0;i<cnt;i++)
{
printf("crossing startline: %d %d %d %d %d\n",p[i].x,p[i].y,p[i].d,p[i].speed,p[i].id);
}
}
cout<<endl;
}
return 0;
}