#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;
}