#include<bits/stdc++.h>
using namespace std;
#define int long long
int xn=502,xm=502,dn=502,dm=502;
string zl,fk;
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
int a[1005][1005];
void dg(int x,int y,bool f,int fx,int cs,bool go)
{
	if(x==502&&y==502&&go==true) cs++;
	if(cs==4)
	{
		int n=dn-xn+1;
		int m=dm-xm+1;
		cout << "END" << endl;        
		cout << n << " " << m << endl;        
		for (int i = xn; i <= dn; i++) 
		{            
			for (int j = xm; j <= dm; j++) 
			{                
				if(a[i][j]==-1) cout<<'#';
				else cout<<'.';      
			}            
			cout << endl;        
		} 
		exit(0);
	}
	if(f==true||fx==-1) 
	{
		zl="LEFT";
		fx++;
	}
	else 
	{
		zl="GO";
		go=true;
		x=x+dx[fx];
		y=y+dy[fx];
		dn=max(dn,x);
		dm=max(dm,y);
		xn=min(xn,x);
		xm=min(xm,y);
	}
	cout<<zl<<endl;
	cin>>fk;
	if(fk=="FAIL")
	{
		f=true;
		go=true;
		x=x-dx[fx];
		y=y-dy[fx];
		a[x][y]=0;
		a[x+dx[fx]][y+dy[fx]]=-1;
	} 
	else if(fk=="SUCC")
	{
		f=false;
		go=true;
		a[x][y]=0;
	}
	else if(fk=="N") 
	{
		go=false;
		f=false;
		fx=0;
	} 
	else if(fk=="S") 
	{
		go=false;
		f=false;
		fx=1;
	} 
	else if(fk=="W") 
	{
		go=false;
		f=false;
		fx=2; 
	}
	else if(fk=="E") 
	{
		go=false;
		f=false;
		fx=3; 
	}
	dg(x,y,f,fx,cs,go); 
}
signed main()
{
	memset(a,-1,sizeof(a));
	dg(502,502,0,-1,0,0);
	return 0;
}