#include <cstdio>
#include <iostream>
#include <cstring>

using namespace std;

const long long A = 17235617;
const long long B = 4311271;
const long long C = 87465851;

const int di[]={1, 0, -1, 0};
const int dj[]={0, -1, 0, 1};
int w=8, h=16;

int next(int x)
{
	return (A*x+B)%C;
}

char s[20][20];
bool use[20][20];

int dfs(int i, int j)
{
	use[i][j]=true;
	int res=1;
	for (int u=0; u<4; ++u)
	{
		int ni=i+di[u];
		int nj=j+dj[u];
		if (ni>=0 && ni<h && nj>=0 && nj<w && s[ni][nj]==s[i][j] && !use[ni][nj])
		{
			res+=dfs(ni, nj);
		}
	}
	return res;
}

int top(int j)
{
	int i;
	for (i=0; i<h && s[i][j]!='.'; ++i);
	return i-1;
}

void put(int j, char c)
{
	s[top(j)+1][j]=c;
}

void get(int j)
{
	s[top(j)][j]='.';
} 

int main()
{
	int x0, x1;
	while(1)
	{
		char str[100];
		scanf("%s",str);
		if(!strcmp(str,"Quit"))
			break;
		if(!strcmp(str,"Start")) {
			scanf("%d", &x0);
			x1=(A*x0+B)%C;
			printf("Little_Greedy\n");
			fflush(stdout);
		}
		else if(!strcmp(str, "Move")) {
			int i, j;
			for (i=h-1; i>=0; --i)
				scanf("%s", s[i]);
			for (i=0; i<h; ++i)
				scanf("%*s");
			int dir=-1;
			for (i=0; i<h; ++i)
			{
				for (j=0; j<w; ++j)
				{
					if (s[i][j]=='.' && (i==0 || s[i-1][j]!='.'))
					{
						put(j, '1'+x0%5);
						put(j, '1'+x1%5);
						memset(use, false, sizeof(use));
						if (dfs(top(j)-1, j) > 3)
						{
							dir=3;
							break;
						}
						memset(use, false, sizeof(use));
						if (dfs(top(j), j) > 3)
						{
							dir=3;
							break;
						}
						get(j);
						get(j);
						
						put(j, '1'+x1%5);
						put(j, '1'+x0%5);
						memset(use, false, sizeof(use));
						if (dfs(top(j)-1, j) > 3)
						{
							dir=1;
							break;
						}
						memset(use, false, sizeof(use));
						if (dfs(top(j), j) > 3)
						{
							dir=1;
							break;
						}
						get(j);
						get(j);
						
						if (j<7)
						{
							put(j, '1'+x0%5);
							put(j+1, '1'+x1%5);
							memset(use, false, sizeof(use));
							if (dfs(top(j+1), j+1) > 3)
							{
								dir=0;
								break;
							}
							get(j);
							get(j+1);
						}

						if (j<7)
						{
							put(j, '1'+x1%5);
							put(j+1, '1'+x0%5);
							memset(use, false, sizeof(use));
							if (dfs(top(j+1), j+1) > 3)
							{
								dir=2;
								break;
							}
							get(j);
							get(j+1);
						}
					}
				}
				if (j<w)
					break;
			}
			if (i<h)
			{
				printf("%d %d\n", j, dir);
			}
			else
			{
				int mni=-1, mn=20;
				for (i=0; i<w; ++i)
				{
					if (mn>top(i))
					{
						mn=top(i);
						mni=i;
					}
				}
				printf("%d %d\n", mni, 1);
			}
			fflush(stdout);
			x0 = next(x1);
			x1 = next(x0);
		}
	}

	return 0;
}
