#include <bits/stdc++.h> using namespace std; const int n = 102, m = 102; char s[n + 5][n + 5]; bool b[n + 5][n + 5]; int x, y; bool Go () { printf("GO\n"); fflush(stdout); char str[555]; scanf("%s", str + 1); if (str[1] == 'F') return false; else return true; } void add (char val) { if (val == 'N') { x -= 1; } else if (val == 'S') { x += 1; } else if (val == 'W') { y -= 1; } else { y += 1; } } void sub (char val, int &xxx, int &yyy) { if (val == 'N') { xxx -= 1; } else if (val == 'S') { xxx += 1; } else if (val == 'W') { yyy -= 1; } else { yyy += 1; } } char Judge () { printf("LEFT\n"); fflush(stdout); char str[5]; scanf("%s", str + 1); return str[1]; } int main (){ for (int i = 1; i <= 102; i++) { for (int j = 1; j <= 102; j++) { if (i == 1 || j == 1 || i == 102 || j == 102) { s[i][j] = '#'; } else { s[i][j] = '?'; } } } memset(b, false, sizeof(b)); char val; x = 2, y = 2; b[x][y] = 1; s[x][y] = '.'; while(true) { val = Judge(); while(true){ while(Go()) { int xx = x, yy = y; sub(val, xx, yy); int id = 0; if (!b[xx][yy]){ add(val); b[x][y] = true; s[x][y] = '.'; } else { break; } } int id = 0; while(true) { val = Judge(); id += 1; int xx = x, yy = y; sub(val, xx, yy); if (Go() && !b[xx][yy]) { add(val); b[xx][yy] = true; s[xx][yy] = '.'; break; } if (id == 3) { id = -1; break; } } if (id == -1) { printf("END\n"); printf("102 102\n"); for (int i = 1; i <= 102; i++) { for (int j = 1; j <= 102; j++) { if (s[i][j] == '?') { printf("#"); } else { printf("%c", s[i][j]); } } printf("\n"); } return 0; } } } return 0; }