#include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<b;i++) typedef long long ll; #define pb push_back int main(){ string s[228]; for(int i=0;i<228;i++){ s[i]="...................................................................................................................................................................................................................................."; } string cif,cig; int x=114,y=114; int minx=228,miny=228,maxx,maxy; int n=3,m=3; int cnt=0; bool a[228][228]; while(1){ cout<<"LEFT"<<endl; cin>>cif; cout<<"GO"<<endl; cin>>cig; if(cig=="FAIL"){ if(cif=="N"){ s[x][y-1]='#'; maxy=max(maxy,y-1); miny=min(miny,y-1); } if(cif=="S"){ s[x][y+1]='#'; maxy=max(maxy,y+1); miny=min(miny,y+1); } if(cif=="E"){ s[x+1][y]='#'; minx=min(minx,x+1); maxx=max(maxx,x+1); } if(cif=="W"){ s[x-1][y]='#'; minx=min(minx,x-1); maxx=max(maxx,x-1); } } if(x==114&&y==114){ cnt++; } if(cig=="GOSUCC"){ if(cif=="N"){ y--; maxy=max(maxy,y); miny=min(miny,y); } if(cif=="S"){ y++; maxy=max(maxy,y); miny=min(miny,y); } if(cif=="E"){ x++; minx=min(minx,x); maxx=max(maxx,x); } if(cif=="W"){ x--; minx=min(minx,x); maxx=max(maxx,x); } a[x][y]=1; } if(cnt>4)break; } n=maxx-minx+1; m=maxy-miny+1; cout<<n<<" "<<m<<endl; for(int i=minx;i<=maxx;i++){ for(int j=miny;j<=maxy;j++){ if(a[i][j]==0)s[i][j]='#'; } } s[114][114]='.'; for(int i=minx;i<=maxx;i++){ for(int j=miny;j<=maxy;j++){ cout<<s[i][j]; } cout<<endl; } return 0; }