#include <bits/stdc++.h>
using namespace std;
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};
int main()
{
	bool all_explored = false;
	char map[205][205];
	for (int i = 1;i <= 200;i++)
	{
		for (int j = 1;j <= 200;j++)
		{
			map[i][j] = 'x';
		}
	}
	map[100][100] = '.';
	int x, y;
	x = y = 100;
	int mx, my, mxy = 410;
	int maxx, maxy, maxxy = 0;
	while (true)
	{
		string feedback;
		cout << "LEFT" << endl;
		cin >> feedback;
		if (all_explored)
		{
			cout << "END\n";
			int n = maxx - mx + 1, m = max (n, maxy - my + 1);
			cout << n << ' ' << m << endl;
			for (int i = 0;i < n;i++)
			{
				for (int j = 0;j < m;j++)
				{
					if (map[i][j] == 'x')
					{
						map[i][j] = '#';
					}
					cout << map[i][j];
				}
				cout << endl;
			} 
			break;
		}
		else
		{
			cout << "GO\n";
			string l;
			cin >> l;
			int kx = x, ky = y;
			if (l == "SUCC")
			{
				if (feedback == "N")
				{
					map[--x][y] = '.';
				}
				else if (feedback == "W")
				{
					map[x][--y] = '.';
				}
				else if (feedback == "S")
				{
					map[++x][y] = '.';
				}
				else
				{
					map[x][++y] = '.';
				}
			}
			else
			{
				if (feedback == "N")
				{
					map[--x][y] = '#';
				}
				else if (feedback == "W")
				{
					map[x][--y] = '#';
				}
				else if (feedback == "S")
				{
					map[++x][y] = '#';
				}
				else
				{
					map[x][++y] = '#';
				}
			}
			if (x + y < mxy)
			{
				mxy = x + y;
				mx = x;
				my = y;
			}
			if (x + y > maxxy)
			{
				maxxy = x + y;
				maxx = x;
				maxy = y;
			}
			x = kx;
			y = ky;
			int cnt = 0;
			for (int i = 0;i < 4;i++)
			{
				if (map[x + dx[i]][y + dy[i]] == '#')
				{
					++cnt;
				}
			}
			if (cnt == 3)
			{
				all_explored = true;
			}
		}
	}
	return 0;
}