#include <bits/stdc++.h> using namespace std; int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; vector<string> s(100, string(100, '#')); bool calc(const bool *f){ for(int i = 0;i < 4;i++){ if(f[i] == false){ return false; } } return true; } int main(){ int cnt = 0; bool flag = true; int x = 50, y = 50, lx = 50, ly = 50, hx = 50, hy = 50, lmi = 0; int dir; s[x][y] = '.'; int fd, fx = 50, fy = 50; string feedback; bool bf[4]; while(true){ bf[dir] = true; if(cnt == 0) cout<<"LEFT"<<endl; else{ if(feedback != "FAIL"){ cout<<"GO"<<endl; lmi++; } else cout<<"LEFT"<<endl; } if(cnt == 1){ fd = dir; } cin>>feedback; cnt++; if(feedback == "N"){ dir = 0; }else if(feedback == "S"){ dir = 1; }else if(feedback == "W"){ dir = 2; }else if(feedback == "E"){ dir = 3; } if(feedback == "SUCC"){ x += dx[dir], y += dy[dir]; s[x][y] = '.'; switch(dir){ case 0: lx--; break; case 1: hx++; break; case 2: ly--; break; case 3: hy++; break; default: break; } }else if(feedback == "FAIL"){ switch(dir){ case 0: lx--; break; case 1: hx++; break; case 2: ly--; break; case 3: hy++; break; default: break; } } if(lmi >= 50000 || cnt >= 100000 || (dir == fd && x == fx && y == fy && calc(bf))){ cout<<"END"<<endl; cout<<(hx - lx + 1)<<" "<<(hy - ly + 1)<<endl; for(int i = lx;i <= hx;i++){ for(int j = ly;j <= hy;j++){ cout<<s[i][j]; } cout<<endl; } return 0; } } return 0; }