#include<bits/stdc++.h> #define ll long long #define endl "\n" using namespace std; bool v[205][205]; bool ans[205][205]; ll r[205],c[205]; ll tf; string get(string s){ string a; cin >> a; return a; } bool q(){ string ans; cout << "GO" << endl; ans = get("GO"); return ans[0]=='S'; } void fun(ll b){ if(tf<b){ while(tf<b){ cout << "RIGHT" << endl; string s; cin >> s; tf++; } } else{ while(tf>b){ cout << "LEFT" << endl; string s; cin >> s; tf--; } } } void DFS(ll x,ll y,ll f){//fÊÇÀ´Ê±µÄ·½Ïò if(v[x][y]) return; if(!q()) return; v[x][y]=true; r[x]++,c[y]++; for(int i = 0;i < 4;i++){ if(i==0){ fun(0); DFS(x-1,y,0); } if(i==1){ fun(1); DFS(x,y+1,1); } if(i==2){ fun(2); DFS(x+1,y,2); } if(i==3){ fun(3); DFS(x,y-1,3); } } fun((f+2)%4); cout << "GO" << endl; string s; cin >> s; } int main(){ // ans[24][25]=ans[23][25]=ans[25][26]=ans[26][26]=1; if(1){ int f; cout << "RIGHT" << endl; char C; cin >> C; if(C=='E') f = 1; if(C=='S') f = 2; if(C=='W') f = 3; if(C=='N') f = 0; tf = f; int rx = 100,ry = 100; v[100][100] = 1,r[100]++,c[100]++; for(int i = 0;i < 4;i++){ if(i==0){ fun(0); DFS(rx-1,ry,0); } if(i==1){ fun(1); DFS(rx,ry+1,1); } if(i==2){ fun(2); DFS(rx+1,ry,2); } if(i==3){ fun(3); DFS(rx,ry-1,3); } } ll xl=200,xr=0,yl=200,yr=0; for(ll i = 0;i <= 200;i++){ if(r[i]) xl=min(xl,i),xr=max(xr,i); if(c[i]) yl=min(yl,i),yr=max(yr,i); } for(int i = xl-1;i <= xr+1;i++){ for(int j = yl-1;j <= yr+1;j++){ if(v[i][j]) cout << "."; else cout << "#"; } cout << endl; } } return 0; }