#include<bits/stdc++.h> using namespace std; char arr[500][500],dir; string backs,ds="ENWS"; int imax=255,imay=255,cnt=4,n=500,m=500; bool vis[500][500],fx[500],fy[500]; int gx(){ if(dir=='E')return imax+1; else if(dir=='W')return imax-1; else return imax; } int gy(){ if(dir=='S')return imay+1; else if(dir=='N')return imay-1; else return imay; } void fail(){ for(int i=0;i<3;i++){ if(!vis[gx()][gy()])arr[gx()][gy()]='#'; cout<<"LEFT"; cin>>backs; dir=ds[(ds.find(dir)+1)%4]; } } void succ(){ arr[gx()][gy()]='.'; imax=gx(); imay=gy(); } int main(){ while(backs!="E"){ cout<<"LEFT"; cin>>backs; } dir='E'; arr[imax][imay]='.'; while(cnt--){ vis[imax][imay]=1; char tdir=dir; dir=ds[(ds.find(dir)+1)%4]; if(vis[gx()][gy()])fail(); dir=tdir; cout<<"go"; cin>>backs; if(backs=="FAIL")fail(); else succ(); } for(int i=1;i<=500;i++){ bool fa=1; bool fb=1; for(int j=1;j<=500;j++){ if(arr[i][j]=='.')fa=0; if(arr[j][i]=='.')fb=0; } if(fa){ fx[i]=1; m--; } if(fb){ fy[i]=1; n--; } } cout<<n<<" "<<m; for(int i=1;i<=500;i++){ if(fx[i])continue; for(int j=1;j<=50;j++){ if(fy[j])continue; if(!arr[i][j])arr[i][j]='#'; cout<<arr[i][j]; } cout<<"\n"; } return 0; }