#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <stack>
using namespace std;
#define Forn(i,n) for(int i=0;i<(n);i++)
#define ForN(i,n) for(int i=1;i<=(n);i++)
struct Game
{
	int x[0x8000];
	int round;
	char pl1[18][9];
	bool used[18][9];
	char pl2[18][9];
	int gr_v;
	int gr_k;
	int gr_pl;

	pair <int,int> get_balls()
	{
		pair <int,int> res;
		res.first=x[this->round*2-2];
		res.second=x[this->round*2-1];
		return res;
	}
	Game(int z)
	{
		x[0]=z;
		ForN(i,0x5fff)
		{
			x[i]=(x[i-1]*17235617+4311271)%87465851;
			x[i-1]=x[i-1]%5+1;
		}
		this->round=0;
	};

	int go_t(int st)
		//получить место падения в столбце на нашем поле
	{
		int res=0;
		while(pl1[res][st]!='.'&&res<15) res++;
		return res;
	}

	int _go_gr_st(int h,int l)//get size of owr group recursive func
	{
		if(used[h][l]||(pl1[h][l]=='.')) return 0;
		used[h][l]=true;
		int cnt=1;
		if(h>0 && (this->pl1)[h][l]==(this->pl1)[h-1][l])		
			cnt+=_go_gr_st(h-1,l);
		if(l>0 && (this->pl1)[h][l]==(this->pl1)[h][l-1])		
			cnt+=_go_gr_st(h,l-1);
		if(h<15 && (this->pl1)[h][l]==(this->pl1)[h+1][l])		
			cnt+=_go_gr_st(h+1,l);
		if(l<7 && (this->pl1)[h][l]==(this->pl1)[h][l+1])		
			cnt+=_go_gr_st(h,l+1);
		
		return cnt;
	}


	int go_val()
	{
		int val=0;
		Forn(i,16)
			Forn(j,8)
				used[i][j]=false;
		Forn(i,16)
			Forn(j,8)
		{
				int st=10;
				int col;
				col=this->_go_gr_st(i,j);
								
				if (col>4) st=(col-3)*10000;
				else
				{
					
					Forn(o,col)
						st=st*10;
//cerr<<'!'<<st;
				}
				if(col!=0) {
					if(col<=4)
						val+=col*col*col*col;
					else
						val+=(col-3)*2000;
				}
				//
				if(pl1[i][j]=='.') continue;
				val+=(j>3?7-j:j)*1;
				if(i<14)
					val-=i;
				else 
					val-=i*50;
				
				
		}
		
		return val;		
	}
	
	void gob_g(char a, char b,int pol)
		//получить выгодное положение для горизонтали АБД: позиция вес
	{
		if((pol&1)==0){
		Forn(i,7)
		{
			int at=go_t(i);
			int bt=go_t(i+1);
			pl1[at][i]=a;
			pl1[bt][i+1]=b;
			int vl=go_val();
			//cerr<<"i"<<i<<":"<<vl<<"\n";
			if(vl>gr_v)
			{
				gr_v=vl;
				gr_k=i; 
				gr_pl=pol;
			}
			pl1[at][i]='.';
			pl1[bt][i+1]='.';
		}}
		else{Forn(i,8)
		{
			int at=go_t(i);			
			pl1[at][i]=a;
			pl1[at+1][i]=b;
			int vl=go_val();
			//cerr<<"i"<<i<<":"<<vl<<"\n";
			if(vl>gr_v)
			{
				gr_v=vl;
				gr_k=i;
				gr_pl=pol;
			}
			pl1[at][i]='.';
			pl1[at+1][i]='.';
		}}
	}
	string step()
	{

		round++;
		gr_v=-10000;
		gr_k=0;
		gr_pl=0;
		pair<int,int> pr=get_balls();
		
		gob_g(pr.first,pr.second,0);
	//	cerr<<"\n";
		gob_g(pr.second,pr.first,2);
	//	cerr<<"\n";
		gob_g(pr.first,pr.second,1);
		cerr<<"\n";
		gob_g(pr.second,pr.first,3);
	//	cerr<<"\n";
		char out_s[30];
		sprintf(out_s,"%d %d\n",gr_k,gr_pl);
///cerr<<out_s;
		return string(out_s);
	}
};
char trash[80];
int main()
{
//	freopen("err.txt","wt",stderr);
	Game *gg;
	int w = 8, h = 16, x0;
	for(int i = 0 ; ; ++i)
	{
		char str[100];
		scanf("%s",str);
		if(!strcmp(str,"Quit"))
		  return 0;
		if(!strcmp(str,"Start")) {
			int z;
			scanf("%d", &z);
			gg = new Game(z);
			printf("Slackers\n");
			fflush(stdout);
		}
		else if(!strcmp(str,"Move")) {			
			for(int j = 0; j < h; j++)
				Forn(o,8)
					cin>>(gg->pl1)[h-j-1][o];			
			for(int j = 0; j < h; j++)
				Forn(o,8)
					cin>>(gg->pl2)[h-j-1][o];
			string ssss=gg->step();
			cout<<ssss;
			cout.flush();
		}
	}

	return 0;
}
