#include<bits/stdc++.h> 
using namespace std;
#define rep(i,a,b) for(int i=a;i<b;i++)
typedef long long ll;
#define pb push_back
int main(){
	string s[228];
	for(int i=0;i<228;i++){
		s[i]="....................................................................................................................................................................................................................................";
	}
	string cif,cig;
	int x=114,y=114;
	int minx=228,miny=228,maxx,maxy;
	int n=3,m=3;
	int cnt=0;
	bool a[228][228];
	while(1){
		cout<<"LEFT"<<endl;
		cin>>cif;
		cout<<"GO"<<endl;
		cin>>cig;
		if(cig=="FAIL"){
			if(cif=="N"){
			    s[x][y-1]='#';
				maxy=max(maxy,y-1);
				miny=min(miny,y-1);
			}
			if(cif=="S"){
			    s[x][y+1]='#';
				maxy=max(maxy,y+1);
				miny=min(miny,y+1);
			}
			if(cif=="E"){
				s[x+1][y]='#';
				minx=min(minx,x+1);
				maxx=max(maxx,x+1);
			}
			if(cif=="W"){
				s[x-1][y]='#';
				minx=min(minx,x-1);
				maxx=max(maxx,x-1);
			}
		}
		if(x==114&&y==114){
			cnt++;
		}
		if(cig=="GOSUCC"){
			if(cif=="N"){
				y--;
				maxy=max(maxy,y);
				miny=min(miny,y);
			}
			if(cif=="S"){
			    y++;
				maxy=max(maxy,y);
				miny=min(miny,y);
			}
			if(cif=="E"){
				x++;
				minx=min(minx,x);
				maxx=max(maxx,x);
			}
			if(cif=="W"){
				x--;
				minx=min(minx,x);
				maxx=max(maxx,x);
			}
			a[x][y]=1;
		}
		if(cnt>4)break;
	}
	n=maxx-minx+1;
	m=maxy-miny+1;
	cout<<n<<" "<<m<<endl;
	for(int i=minx;i<=maxx;i++){
		for(int j=miny;j<=maxy;j++){
			if(a[i][j]==0)s[i][j]='#';
		}
	}
	s[114][114]='.';
	for(int i=minx;i<=maxx;i++){
		for(int j=miny;j<=maxy;j++){
			cout<<s[i][j];
		}
		cout<<endl;
	}
	return 0;
}