#include <bits/stdc++.h> using namespace std; char mp[305][305]; int dx[]={-1,0,1,0}; int dy[]={0,1,0,-1}; void dfs(int x,int y,int f){ mp[x][y]='.'; for (int i=0;i<4;i++){ cout<<"GO"<<endl; string fb; cin>>fb; if(fb=="FAIL") { mp[x+dx[f]][y+dy[f]]='#'; cout<<"RIGHT"<<endl; cin>>fb; f++; f%=4; continue; } dfs(x+dx[f],y+dy[f],f); cout<<"RIGHT"<<endl; string fb2; cin>>fb2; f++; f%=4; } string fb; cout<<"LEFT"<<endl; cin>>fb; f--; f%=4; cout<<"LEFT"<<endl; f--; f%=4; cin>>fb; cout<<"GO"<<endl; cin>>fb; if(fb=="SUCC") mp[x+dx[f]][y+dy[f]]='.'; return; } int l[205]; int r[205]; int main(){ ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); memset(mp,'U',sizeof(mp)); cout<<"LEFT"<<endl; char ch; cin>>ch; int f; if(ch=='N') f=0; if(ch=='E') f=1; if(ch=='S') f=2; if(ch=='W') f=3; dfs(100,100,f); cout<<"END"<<endl; for (int i=1;i<=200;i++){ l[i]=INT_MAX; r[i]=INT_MIN; for (int j=1;j<=200;j++){ if(mp[i][j]!='U') r[i]=j; if(mp[i][j]!='U'&&l[i]==INT_MAX) l[i]=j; } } int le=*min_element(l+1,l+200+1); int ri=*max_element(r+1,r+200+1); int line1=-1,line2; for (int i=1;i<=200;i++){ if(r[i]!=INT_MIN) line2=i; if(r[i]!=INT_MIN&&line1==-1) line1=i; } cout<<line2-line1+1<<" "<<ri-le+1<<endl; for (int i=line1;i<=line2;i++){ for (int j=le;j<=ri;j++){ if(mp[i][j]=='U')cout<<'#'; else cout<<mp[i][j]; } cout<<endl; } return 0; }