#include<bits/stdc++.h> using namespace std; //#define int long long char c[309][309]; int nowx=150,nowy=150,nowd; string s; const int dx[]={-1,1,0,0}; const int dy[]={0,0,-1,1}; bool mem[309][309]; void GetD(string s,int &d){ if(s=="N")d=0; if(s=="S")d=2; if(s=="W")d=1; if(s=="E")d=3; } void solve(int x,int y,int d){ if(c[x+dx[d]][y+dy[d]]=='?'){//ǰ puts("GO"); cin>>s; if(s=="FAIL")c[x+dx[d]][y+dy[d]]='#'; else c[x+dx[d]][y+dy[d]]='.',mem[x+dx[d]][y+dy[d]]=1,solve(x+dx[d],y+dy[d],d); } else { puts("LEFT"); cin>>s; int dd;GetD(s,dd); if(c[x+dx[dd]][y+dy[dd]]=='?'){//×ó puts("GO"); cin>>s; if(s=="FAIL")c[x+dx[dd]][y+dy[dd]]='#'; else c[x+dx[dd]][y+dy[dd]]='.',mem[x+dx[dd]][y+dy[dd]]=1,solve(x+dx[dd],y+dy[dd],dd); } puts("RIGHT"); cin>>s; puts("RIGHT"); cin>>s;GetD(s,dd); if(c[x+dx[dd]][y+dy[dd]]=='?'){//×ó puts("GO"); cin>>s; if(s=="FAIL")c[x+dx[dd]][y+dy[dd]]='#'; else c[x+dx[dd]][y+dy[dd]]='.',mem[x+dx[dd]][y+dy[dd]]=1,solve(x+dx[dd],y+dy[dd],dd); } puts("LEFT"); cin>>s; } int cnt=0,dd=d; while(!mem[x+dx[dd]][y+dy[dd]]){ puts("LEFT"); cin>>s;cnt++; GetD(s,dd); } puts("GO"); cin>>s; puts("LEFT"); cin>>s; puts("LEFT"); cin>>s; } main(){ for(int i=0;i<=300;i++)for(int j=0;j<=300;j++)c[i][j]='?'; c[nowx][nowy]='.'; puts("LEFT"); cin>>s;GetD(s,nowd); solve(nowx,nowy,nowd); puts("LEFT"); cin>>s;GetD(s,nowd); solve(nowx,nowy,nowd); puts("LEFT"); cin>>s;GetD(s,nowd); solve(nowx,nowy,nowd); puts("LEFT"); cin>>s;GetD(s,nowd); solve(nowx,nowy,nowd); puts("LEFT"); cin>>s;GetD(s,nowd); int U=1e9,D=0,L=1e9,R=0; for(int i=1;i<=300;i++){ for(int j=1;j<=300;j++){ if(c[i][j]!='?')U=min(U,i),D=max(D,i),L=min(L,j),R=max(R,j); } } puts("END"); for(int i=U;i<=D;i++,puts("")){ for(int j=L;j<=R;j++){ if(c[i][j]=='.')cout<<'.'; else cout<<'#'; } } }