#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
#define f(i,a,b) for(int i=a;i<b;i++)
#define f2(i,a,b) for(int i=a;i<=b;i++)
const int dx[4]={-1,0,1,0};
const int dy[4]={0,1,0,-1};
map<string,int> m;
string fb;
char a[300][300];
void init(){
	m["N"]=0;
	m["E"]=1;
	m["S"]=2;
	m["W"]=3;
	f(i,0,300) f(j,0,300) a[i][j]='0';
}
void dfs(int fx,int x,int y){
	a[x][y]='.';
	f(i,0,4){
		cout<<"GO\n";
		cin>>fb;
		int t=(fx+i)%4;
		if(fb=="FAIL") a[x+dx[t]][y+dy[t]]='#';
		else{
			dfs(t,x+dx[t],y+dy[t]);
			cout<<"RIGHT\n";
			cin>>fb;
			cout<<"RIGHT\n";
			cin>>fb;
			cout<<"GO\n";
			cin>>fb;
			cout<<"RIGHT\n";
			cin>>fb;
			cout<<"RIGHT\n";
			cin>>fb;
		}
		cout<<"RIGHT\n";
		cin>>fb;
	}
}
int main(){
	init();
	fb="";
	while(fb!="N"){
		cout<<"RIGHT\n";
		cin>>fb;
	}
	a[150][150]='.';
	dfs(0,150,150);
	int r1=999,c1=999;
	int r2=-99,c2=-99;
	f2(i,1,150) f2(j,1,150) if(a[i][j]=='.') r1=min(r1,i),c1=min(c1,j),r2=max(r2,i),c2=max(c2,j);
	cout<<"END\n";
	cout<<r2-r1+1<<" "<<c2-c1+1<<endl;
	f2(i,r1-1,r2+1){
		f2(j,c1-1,c2+1){
			if(a[i][j]=='.') cout<<'.';
			else cout<<'#';
			cout<<a[i][j];
		}
		cout<<endl;
	}
	return 0;
}