UVa 512
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
struct Command
{
char c[5];
int r1,c1,r2,c2;
int a,x[20];
}cmd[N];
int r,c,n;
bool simulate(int *r0,int * c0)
{
for(int i=0;i<n;i++)
{
if(cmd[i].c[0]=='E')
{
if(cmd[i].r1 == *r0 && cmd[i].c1==*c0)
{*r0=cmd[i].r2;*c0=cmd[i].c2;}
else if(cmd[i].r2==*r0 && cmd[i].c2==*c0)
{*r0=cmd[i].r1;*c0=cmd[i].c1;}
}else{
int dr=0,dc=0;
for(int j=0;j<cmd[i].a;j++)
{
int x = cmd[i].x[j];
if(cmd[i].c[0]=='I')
{
if(cmd[i].c[1]=='R' && x<=*r0) dr++;
if(cmd[i].c[1]=='C' && x<=*c0) dc++;
}else{
if(cmd[i].c[1]=='R' && x==*r0) return false;
if(cmd[i].c[1]=='C' && x==*c0) return false;
if(cmd[i].c[1]=='R' && x<*r0) dr--;
if(cmd[i].c[1]=='C' && x<*c0) dc--;
}
}
*r0 += dr;*c0 += dc;
}
}
return true;
}
int main()
{
#ifdef Zhe
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int r0,c0,q,kase=0;
while(scanf("%d%d%d",&r,&c,&n)==3 && r)
{
for(int i=0;i<n;i++)
{
cin>>cmd[i].c;
if(cmd[i].c[0] == 'E'){
cin>>cmd[i].r1>>cmd[i].c1>>cmd[i].r2>>cmd[i].c2;
}else{
cin>>cmd[i].a;
for(int j=0;j<cmd[i].a;j++) cin>>cmd[i].x[j];
}
}
if(kase>0) cout<<endl;
cout<<"Spreadsheet #"<<++kase<<endl;
cin>>q;
while(q--)
{
cin>>r0>>c0;
cout<<"Cell data in ("<<r0<<","<<c0<<") ";
if(!simulate(&r0,&c0)) cout<<"GONE"<<endl;
else cout<<"move to ("<<r0<<","<<c0<<")"<<endl;
}
}
return 0;
}