#include <bits/stdc++.h>
using namespace std;
char a[105][105];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
vector<pair<int,int>> g;
int op[1005][1005];
int main(){
	int cnt=0;
	int fx=-1;
	int n,m;
	memset(a,'#',sizeof(a));
	int kkk=0,x=1,y=1,kk=0;
	int minx=0,miny=0,maxx=0,maxy=0;
	g.push_back(make_pair(x,y));
	while(1){
		string fb;
		if(op[x+100][y+100]>2||kkk==4){
			n=abs(minx)+maxy;
			m=abs(miny)+maxy;
			cout<<"END\n";
			cout<<n+1<<" "<<m+1<<"\n";
			for(int i=0; i<g.size(); i++) a[g[i].first][g[i].second]='.';
			for(int i=0; i<=n+1; i++){
				for(int j=0; j<=m+1; j++){
					cout<<a[i][j];
				}
				cout<<"\n";
			}
			return 0;
		}
		if(cnt==0){
			cout<<"LEFT\n";
			cnt++;
		}else{
			cnt++;
			if(!kk){
				cout<<"GO\n",kk=1;
				op[x+100+dx[fx]][y+100+dy[fx]]++;
				minx=min(minx,x+dx[fx]);
				miny=min(miny,y+dy[fx]);
				maxx=max(maxx,x+dx[fx]);
				maxy=max(maxy,y+dy[fx]);
			}
			else cout<<"LEFT\n",kk=0;
		}
		cin>>fb;
		if(fb.size()==1){
			if(fb=="E") fx=0;
			if(fb=="W") fx=1;
			if(fb=="S") fx=2;
			if(fb=="N") fx=3;
		}
		else if(fb=="FAIL"){
			fx++;
			fx%=4;
			kkk++;
		}else{
			kkk=0;kk=0;
			x=x+dx[fx];y=y+dy[fx];
			g.push_back(make_pair(x,y));
			op[x+100][y+100]++;
			minx=min(minx,x);
			miny=min(miny,y);
			maxx=max(maxx,x);
			maxy=max(maxy,y);
		} 
	}
	return 0;
}