#include<bits/stdc++.h> using namespace std; int img[1000][1000]; int h[1000][1000]; int f=0; int mx=500,my=500,ix=500,iy=500; void dfs(int lx,int ly,int x,int y,int tf){ string s; h[x][y]=1; if(!h[x-1][y]){ if(f!=0){ if(f==1){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } else if(f==2){ cout<<"RIGHT\n"; cin>>s; } else if(f==3){ cout<<"LEFT\n"; cin>>s; } } cout<<"GO\n"; cin>>s; if(s=="SUCC"){ //up ix=min(ix,x-1); f=0; img[x-1][y]=-1; dfs(x,y,x-1,y,1); } } if(!h[x][y-1]){ if(f!=2){ if(f==0){ cout<<"LEFT\n"; cin>>s; } if(f==1){ cout<<"RIGHT\n"; cin>>s; } if(f==3){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } } cout<<"GO\n"; cin>>s; if(s=="SUCC"){ iy=min(iy,y-1); f=2; img[x][y-1]=-1; dfs(x,y,x,y-1,3); } } if(!h[x+1][y]){ if(f!=1){ if(f==0){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } if(f==2){ cout<<"LEFT\n"; cin>>s; } if(f==3){ cout<<"RIGHT\n"; cin>>s; } } cout<<"GO\n"; cin>>s; if(s=="SUCC"){ mx=max(x+1,mx); f=1; img[x+1][y]=-1; dfs(x,y,x+1,y,0); } } if(!h[x][y+1]){ if(f!=3){ if(f==0){ cout<<"RIGHT\n"; cin>>s; } if(f==1){ cout<<"LEFT\n"; cin>>s; } if(f==2){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } } cout<<"GO\n"; cin>>s; if(s=="SUCC"){ my=max(y+1,my); f=3; img[x][y+1]=-1; dfs(x,y,x,y+1,2); } } if(tf==0){ if(f==1){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } else if(f==2){ cout<<"RIGHT\n"; cin>>s; } else if(f==3){ cout<<"LEFT\n"; cin>>s; } cout<<"GO\n"; cin>>s; } if(tf==1){ if(f==0){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } if(f==2){ cout<<"LEFT\n"; cin>>s; } if(f==3){ cout<<"RIGHT\n"; cin>>s; } cout<<"GO\n"; cin>>s; } if(tf==2){ if(f==0){ cout<<"LEFT\n"; cin>>s; } if(f==1){ cout<<"RIGHT\n"; cin>>s; } if(f==3){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } cout<<"GO\n"; cin>>s; }else{ if(f==0){ cout<<"RIGHT\n"; cin>>s; } if(f==1){ cout<<"LEFT\n"; cin>>s; } if(f==2){ cout<<"LEFT\n"; cin>>s; cout<<"LEFT\n"; cin>>s; } cout<<"GO\n"; cin>>s; } if(lx==500&&ly==500&&x==500&&y==500){ cout<<"END"<<endl; ix--; iy--; mx++; my++; cout<<mx-ix+1<<" "<<my-iy+1<<'\n'; for(int i=ix;i<=mx;i++){ for(int j=iy;j<=my;j++){ if(img[i][j]==-1) cout<<'.'; else cout<<'#'; } cout<<'\n'; } } } int main(){ img[500][500]=-1; string s; cout<<"LEFT"<<endl; while(cin>>s,s!="N") cout<<"LEFT"<<endl; dfs(500,500,500,500,0); return 0; }