#include <bits/stdc++.h> using namespace std; char a[105][105]; int dx[4]={0,0,1,-1}; int dy[4]={1,-1,0,0}; vector<pair<int,int>> g; int op[1005][1005]; int main(){ int cnt=0; int fx=-1; int n,m; memset(a,'#',sizeof(a)); int kkk=0,x=1,y=1,kk=0; int minx=0,miny=0,maxx=0,maxy=0; g.push_back(make_pair(x,y)); while(1){ string fb; if(op[x+100][y+100]>2||kkk==4){ n=abs(minx)+maxy; m=abs(miny)+maxy; cout<<"END\n"; cout<<n+1<<" "<<m+1<<"\n"; for(int i=0; i<g.size(); i++) a[g[i].first][g[i].second]='.'; for(int i=0; i<=n+1; i++){ for(int j=0; j<=m+1; j++){ cout<<a[i][j]; } cout<<"\n"; } return 0; } if(cnt==0){ cout<<"LEFT\n"; cnt++; }else{ cnt++; if(!kk){ cout<<"GO\n",kk=1; op[x+100+dx[fx]][y+100+dy[fx]]++; minx=min(minx,x+dx[fx]); miny=min(miny,y+dy[fx]); maxx=max(maxx,x+dx[fx]); maxy=max(maxy,y+dy[fx]); } else cout<<"LEFT\n",kk=0; } cin>>fb; if(fb.size()==1){ if(fb=="E") fx=0; if(fb=="W") fx=1; if(fb=="S") fx=2; if(fb=="N") fx=3; } else if(fb=="FAIL"){ fx++; fx%=4; kkk++; }else{ kkk=0;kk=0; x=x+dx[fx];y=y+dy[fx]; g.push_back(make_pair(x,y)); op[x+100][y+100]++; minx=min(minx,x); miny=min(miny,y); maxx=max(maxx,x); maxy=max(maxy,y); } } return 0; }