#include<bits/stdc++.h> using namespace std; // GO per cell : leq 5 map<char,array<int,2>> D; void init(){ D['N']={-1,0}; D['S']={1,0}; D['W']={0,-1}; D['E']={0,1}; } const int N = 100+5; char mp[2*N][2*N]; bool vis[2*N][2*N]; int n; char dir; char s[6]; void dfs(int x,int y){ for(int k=0;k<4;k++){ printf("rb:%d,%d turn:%c\n",x,y,dir); printf("LEFT\n");fflush(stdout); scanf("%s",s); dir=s[0]; int nx=x+D[dir][0]; int ny=y+D[dir][1]; if(vis[nx][ny]) continue; printf("GO\n");fflush(stdout); vis[nx][ny]=1; scanf("%s",s); if(s[0]=='S') // success mp[nx][ny]='.',dfs(nx,ny); else // fail mp[nx][ny]='#'; } if(x==N&&y==N) return; printf("LEFT\n");fflush(stdout);scanf("%s",s); printf("LEFT\n");fflush(stdout);scanf("%s",s); printf("GO\n");fflush(stdout);scanf("%s",s); printf("LEFT\n");fflush(stdout);scanf("%s",s); printf("LEFT\n");fflush(stdout);scanf("%s",s); dir=s[0]; } int main(){ init(); mp[N][N]='.',vis[N][N]=1; dfs(N,N); printf("END\n"); int t=N,b=N,l=N,r=N; for(int i=1;i<=2*N;i++) for(int j=1;j<=2*N;j++) if(vis[i][j]) t=min(t,i),b=max(b,i), l=min(l,j),r=max(r,j); printf("%d %d\n",b-t+1,r-l+1); for(int i=t;i<=b;i++) for(int j=l;j<=r;j++) if(!mp[i][j]) mp[i][j]='#'; for(int i=t;i<=b;i++) printf("%s\n",mp[i]+l); fflush(stdout); }