#include <cstdio>
#include <algorithm>
#include <vector>
#include <ctime>
#include <cstring>
#include <cstdlib>
#include <string>
#include <iostream>
using namespace std;
#define mp make_pair
vector<string> we,en;
long long f(long long x){
	return (x*17235617+4311271)%87465851;
}
char f2(int x){
	return (x%5)+'1';
}
int cnt;
int n=16,m=8;
vector<vector<char> > used;
int dy[]={-1,0,1,0};
int dx[]={0,1,0,-1};
void dfs(int y,int x){
	cnt++;
	used[y][x]=true;
	for (int l=0;l<4;l++){
		int yy=y+dy[l];
		int xx=x+dx[l];
		if (yy>=0 && yy<n && xx>=0 && xx<m && !used[yy][xx] && we[yy][xx]==we[y][x])
			dfs(yy,xx);
	}
}
int main(){
	//freopen("input.txt","r",stdin);
	srand(time(0));
	int xprev,xcur;
	for (int step=0;;step++){
		string s;
		cin>>s;
		if (s=="Quit") break;
		if (s=="Start"){
			scanf("%d",&xprev);
			xcur=f(xprev);
			printf("SimpleBot\n");
			fflush(stdout);
		}
		else if(s=="Move"){

			we.assign(n+2,string(m,'.'));
			en.resize(n);

			for (int j=0;j<n;j++)
				cin>>we[n-j-1];

			for (int j=0;j<n;j++)
				cin>>en[j];

			vector<int> height(m);
			for (int i=0;i<n;i++)
				for (int j=0;j<m;j++)
					if (we[i][j]!='.')
						height[j]++;
			int col,pos;
			bool found=false;

			vector<int> mas(m);
			for (int i=0;i<m;i++)
				mas[i]=i;
			random_shuffle(mas.begin(),mas.end());

			for (int jj=0;!found && jj<m;jj++){
				int j=mas[jj];
				for (int p=0;!found && p<4;p++){
					if (j==7 && p%2==0)
						continue;
					pair<int,int> tmp1,tmp2;
					if (p==0){
						we[height[j]][j]=f2(xprev);
						we[height[j+1]][j+1]=f2(xcur);
						tmp1=mp(j,height[j]);
						tmp2=mp(j+1,height[j+1]);
					}else if (p==1){
						we[height[j]][j]=f2(xcur);
						we[height[j]+1][j]=f2(xprev);
						tmp1=mp(j,height[j]);
						tmp2=mp(j,height[j]+1);
					}else if (p==2){
						we[height[j]][j]=f2(xcur);
						we[height[j+1]][j+1]=f2(xprev);
						tmp1=mp(j,height[j]);
						tmp2=mp(j+1,height[j+1]);
					}else{
						we[height[j]][j]=f2(xprev);
						we[height[j]+1][j]=f2(xcur);
						tmp1=mp(j,height[j]);
						tmp2=mp(j,height[j]+1);
					}
					bool bad=false;
					for (int i=n;i<n+2;i++)
						for (int j=0;j<m;j++)
							if (we[i][j]!='.')
								bad=true;
					used.assign(n,vector<char>(m));
					if (bad){
						we[tmp1.second][tmp1.first]='.';
						we[tmp2.second][tmp2.first]='.';
						continue;
					}
					bool good=false;
					for (int i=0;!good &&  i<n;i++)
						for (int j=0;!good && j<m;j++)
							if (we[i][j]!='*' && !used[i][j]){
								cnt=0;
								dfs(i,j);
								if (step%1==0){
									if (cnt>=4)
										good=true;
								}else{
									if (cnt>3 && cnt<7)
										bad=true;
								}
						}
					we[tmp1.second][tmp1.first]='.';
					we[tmp2.second][tmp2.first]='.';
					if (good  || !bad){
						col=j;
						pos=p;
						found=true;
					}
				}
			}
			if (!found){
				col=rand()%7;
				pos=0;
			}
			printf("%d %d\n",col,pos);
			fflush(stdout);
			xprev=f(xcur);
			xcur=f(xprev);
		}
	}
	return 0;
}