//p5.cpp
#include<bits/stdc++.h>
using namespace std;
int d,x=150,y=150,u=150,dd=150,l=150,r=150;
int a[305][305],b[305][305];
int n,m;
int dx[]{1,0,-1,0};
int dy[]{0,1,0,-1};//U R D L
int flag=1;
void dg(int x,int y){
	b[x][y]=1;
	for(int i=0;i<4;i++){
		int tx=x+dx[i];
		int ty=y+dy[i];
		if(a[tx][ty]==0){
			flag=0;
			return ;
		}
		if(a[tx][ty]==1&&b[tx][ty]==0){
			dg(tx,ty);
		}
	}
}
int main(){
	cout<<"RIGHT\n";
	string feedback;
	cin>>feedback;
	if(feedback=="N") d=2;
	if(feedback=="E") d=1;
	if(feedback=="S") d=0;
	if(feedback=="W") d=3;
	a[150][150]=1;
	while(true){
		while(true){
			int tx=x+dx[d];
			int ty=y+dy[d];
			if(a[tx][ty]==1&&(a[x-1][y]==0||a[x+1][y]==0||a[x][y-1]==0||a[x][y+1]==0)){
				break;
			}
			cout<<"GO\n";
			cin>>feedback;
			if(feedback=="FAIL"){
				a[tx][ty]=-1;
				break;
			}
			else{
				a[tx][ty]=1;
				x=tx,y=ty;	
			}
		}
		if(d==2) u=min(u,x-1);
		if(d==0) dd=max(dd,x+1);
		if(d==1) r=max(r,y+1);
		if(d==3) l=min(l,y-1);
		u=min(u,x);dd=max(dd,x);
		r=max(r,y);l=min(l,y);
//		cout<<dd-u+1<<' '<<r-l+1<<'\n';
//		for(int i=u;i<=dd;i++){
//			for(int j=l;j<=r;j++){
//				if(i==x&&y==j) {
//					cout<<"X";continue;
//				}
//				if(a[i][j]==-1) cout<<"#";
//				else if(a[i][j]==0) cout<<"?";
//				else cout<<".";
//			}
//			cout<<'\n';
//		}
//		
//		cout<<d<<'\n';
		
		int gs=0,js=0;
		while(true){
			gs++;
			if(gs>=4){
				js=1;
			}
			int td=d;
			td++;
			if(td>3) td-=4;
			int tx=x+dx[td];
			int ty=y+dy[td];
			cout<<"LEFT\n";
			d=td;
			cin>>feedback;
			if(a[tx][ty]==0) break;
			else if(a[tx][ty]==1&&js==1) break;
			else if(gs>=8){
				break;
			}
		}
		flag=1;
		memset(b,0,sizeof(b));
		dg(150,150);
		if(flag==1){
			cout<<"END\n";
			break;
		}
	}
	cout<<dd-u+1<<' '<<r-l+1<<'\n';
	for(int i=u;i<=dd;i++){
		for(int j=l;j<=r;j++){
			if(a[i][j]<1) cout<<"#";
			else cout<<".";
		}
		cout<<'\n';
	}
	return 0;
}