#include <cstdio>
char mat[250][250];
int cp[2][50][2],cv=0,t,nw=0,n,m,bp=0,d=0,mv=0,mt,h;
int dir[5][2]={{0,0},{-1,0},{0,-1},{1,0},{0,1}};
void swap(){
for(int i=0;i<nw;i++){
mat[cp[0][i][0]][cp[0][i][1]]=(cv==0)?0:8;
}
for(int i=0;i<t;i++){
mat[cp[1][i][0]][cp[1][i][1]]=(cv==0)?8:0;
}
cv=(cv+1)%2;
}
bool onMap(int&x,int& y){
if(x<1||x>n||y<1||y>m){
return false;
}else{
return true;
}
}
bool onBomb(int x,int y){
if(mat[x][y]==6||mat[x][y]==10){
return true;
}else{
for(int i=0;i<=4;i++){
if(0<x+dir[i][0]&&x+dir[i][0]<=n&&0<y+dir[i][1]&&y+dir[i][1]<=m){
if(mat[x+dir[i][0]][y+dir[i][1]]==6){
mat[x+dir[i][0]][y+dir[i][1]]=10;
}else if(mat[x+dir[i][0]][y+dir[i][1]]==10){
return true;
}
}
}
}
return false;
}
int onArrow(int x,int y){
if(1<=mat[x][y]&&mat[x][y]<=4){
return mat[x][y];
}else{
return 0;
}
}
void switchdir(int& dir){
if(dir==1){
dir=3;
}else if(dir==2){
dir=4;
}else if(dir==3){
dir=1;
}else{
dir=2;
}
}
int main(){
FILE* fin=fopen("iepuras.in","r");
FILE* fout=fopen("iepuras.out","w");
int x,y,tmp;
fscanf(fin,"%u %u\n%u %u %u",&n,&m,&x,&y,&h);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
fscanf(fin,"%u",&tmp);
if(tmp==8){
cp[0][nw][0]=i,cp[0][nw][1]=j;
nw++;
}else if(tmp==7){
mt++;
}
mat[i][j]=tmp;
}
}
fscanf(fin,"%u",&t);
for(int i=0;i<t;i++){
fscanf(fin,"%u %u",&cp[1][i][0],&cp[1][i][1]);
}
while(true){
x+=dir[h][0];
y+=dir[h][1];
d++;
if(!onMap(x,y)){
fprintf(fout,"RATACIT\n");
fprintf(fout,"%u %u\n%u %u\n",x-dir[h][0],y-dir[h][1],mv,d);
break;
}
if(mat[x][y]==7){
mv++,mat[x][y]=0;
}
if(onBomb(x,y)){
fprintf(fout,"INGERAS\n");
fprintf(fout,"%u %u\n%u %u\n",x,y,mv,d);
break;
}
if(mv==mt&&mt!=0){
fprintf(fout,"FERICIT\n");
fprintf(fout,"%u %u\n%u %u\n",x,y,mv,d);
break;
}
if(mat[x][y]==9){
swap();
}
if(1<=mat[x][y]&&mat[x][y]<=4){
h=mat[x][y],mat[x][y]=0;
}
if(mat[x+dir[h][0]][y+dir[h][1]]==8||mat[x+dir[h][0]][y+dir[h][1]]==5){
switchdir(h);
}
}
fclose(fin);
fclose(fout);
return 0;
}