#include<bits/stdc++.h> using namespace std; string command, feedback; char ans[303][303]; int mxl = 150, mxr = 150, mxu = 150, mxd = 150; bool vis[303][303]; void dfs(int x, int y, char dic, int turn){ command = "GO"; cout<<command<<endl; cin>>feedback; bool flag = 1; if(dic == 'W' && vis[x][y - 1])flag = 0; if(dic == 'N' && vis[x - 1][y])flag = 0; if(dic == 'S' && vis[x + 1][y])flag = 0; if(dic == 'E' && vis[x][y + 1])flag = 0; if(feedback == "SUCC" && flag){ if(dic == 'W')dfs(x, y - 1, 'W', 0), ans[x][y - 1] = '.', mxl--, vis[x][y - 1] = 1; else if(dic == 'N')dfs(x - 1, y, 'N', 0), ans[x - 1][y] = '.', mxu--, vis[x - 1][y] = 1; else if(dic == 'S')dfs(x + 1, y, 'S', 0), ans[x + 1][y] = '.', mxd++, vis[x + 1][y] = 1; else dfs(x, y + 1, 'E', 0), ans[x][y + 1] = '.', mxr++, vis[x][y + 1] = 1; } else{ turn++; if(turn == 4)return; command = "LEFT"; cout<<command<<endl; cin>>feedback; dic = feedback[0]; if(dic == 'W')dfs(x, y - 1, 'W', turn); else if(dic == 'N')dfs(x - 1, y, 'N', turn); else if(dic == 'S')dfs(x + 1, y, 'S', turn); else dfs(x, y + 1, 'E', turn); } } int main(){ memset(ans, '#', sizeof(ans)); command = "LEFT"; cout<<command<<endl; cin>>feedback; ans[150][150] = '.';vis[150][150] = 1; dfs(150, 150, feedback[0], 0); cout<<"END"<<endl; for(int i = mxu - 1;i <= mxd + 1;i++){ for(int j = mxl - 1;j <= mxr + 1;j++){ cout<<ans[i][j]; } cout<<endl; } }