/*
TASK:roulette
LANG:C++
*/
#include <iostream>
#include <cstring>

using namespace std;

//ifstream cin( "roulette.in" );
//ofstream cout( "roulette.out" );

short int sum=0;
short int s[ 7 ];
int turn = 0; // 0 = go6o, 1 = to6o
short dyn[ 57 ][ 5 ][ 5 ][ 5 ][ 5 ][ 5 ][ 5 ];



void	indata( )
{
  char move[ 128 ];
  int i, j, k, l, m, n;
	cin.getline( move, 127 );
	s[ 1 ]  = s[ 2 ] = s[ 3 ] = s[ 4 ] = s[ 5 ] = s[ 6 ] = 4;

  for ( i=0; i<strlen( move ); i++ )
  {
	 sum += ( move[ i ] - '0' );
	 s[ move[ i ] - '0' ]--;
	 turn = !turn;
  }
int i1;
  for ( i=0; i<=4; i++ )
	  for ( j=0; j<=4; j++ )
		  for ( k=0; k<=4; k++ )
			  for ( l=0; l<=4; l++ )
				  for ( m=0; m<=4; m++ )
					  for ( n=0; n<=4; n++ )
						  for ( i1=0; i1<=48; i1++ )
							  dyn[ i1 ][ i ][ j ][ k ][ l ][ m ][ n ] = -1;


  for ( i=0; i<=4; i++ )
	  for ( j=0; j<=4; j++ )
		  for ( k=0; k<=4; k++ )
			  for ( l=0; l<=4; l++ )
				  for ( m=0; m<=4; m++ )
					  for ( n=0; n<=4; n++ )
						{
						  dyn[ 49 ][ i ][ j ][ k ][ l ][ m ][ n ] = 0;
						  dyn[ 50 ][ i ][ j ][ k ][ l ][ m ][ n ] = 1;
						  dyn[ 51 ][ i ][ j ][ k ][ l ][ m ][ n ] = 1;
						  dyn[ 52 ][ i ][ j ][ k ][ l ][ m ][ n ] = 1;
						  dyn[ 53 ][ i ][ j ][ k ][ l ][ m ][ n ] = 1;
						  dyn[ 54 ][ i ][ j ][ k ][ l ][ m ][ n ] = 1;
						  dyn[ 55 ][ i ][ j ][ k ][ l ][ m ][ n ] = 1;
						}
}

char geta( int turn )
{
  return turn == 0 ? 'G' : 'T';
}

/*short solve( short s1[ 7 ], short int sum )
{
  int i;
  short s[ 7 ];

	if ( sum == 49 )
		return 0;
	if ( sum > 49 )
	  return 1;

	for ( i=1; i<=6; i++ )
		s[ i ] = s1[ i ];

	if ( dyn[ sum ][ s[ 1 ] ][ s[ 2 ] ][ s[ 3 ] ][ s[ 4 ] ][ s[ 5 ] ][ s[ 6 ] ] == -1 )
	{
   dyn[ sum ][ s1[ 1 ] ][ s1[ 2 ] ][ s1[ 3 ] ][ s1[ 4 ] ][ s1[ 5 ] ][ s1[ 6 ] ] = 0;

	 for ( i=6; i>=1; i-- )
		 if ( s[ i ] )
       {
			s[ i ]--;
			if ( solve( s, sum+i ) == 0 )
			{
			   dyn[ sum ][ s1[ 1 ] ][ s1[ 2 ] ][ s1[ 3 ] ][ s1[ 4 ] ][ s1[ 5 ] ][ s1[ 6 ] ] = i;
				s[ i ]++;
				i = 0;
			}
			s[ i ]++;
       }
   }

	return dyn[ sum ][ s1[ 1 ] ][ s1[ 2 ] ][ s1[ 3 ] ][ s1[ 4 ] ][ s1[ 5 ] ][ s1[ 6 ] ];
}	*/

short solve( short s1[ 7 ], short int sum )
{
	int i, j, s;
	int i1, i2, i3, i4, i5, i6;

	for ( s=48; s>=sum; s-- )
   {
	  for ( i1=s1[ 1 ]; i1 >= 0; i1-- )
		  for ( i2=s1[ 2 ]; i2 >= 0; i2-- )
			  for ( i3=s1[ 3 ]; i3 >= 0; i3-- )
				  for ( i4=s1[ 4 ]; i4 >= 0; i4-- )
					  for ( i5=s1[ 5 ]; i5 >= 0; i5-- )
						  for ( i6=s1[ 6 ]; i6 >= 0; i6-- )
                    {
							 dyn[ s ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] = 0;

							 if ( i6 > 0 && dyn[ s + 6 ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6-1 ] == 0 )
								 dyn[ s ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] = 6;
							else
							 if ( i5 > 0 && dyn[ s + 5 ][ i1 ][ i2 ][ i3 ][ i4 ][ i5-1 ][ i6 ] == 0 )
								 dyn[ s ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] = 5;
							else
							 if ( i4 > 0 && dyn[ s + 4 ][ i1 ][ i2 ][ i3 ][ i4-1 ][ i5 ][ i6 ] == 0 )
								 dyn[ s ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] = 4;
							else
							 if ( i3 > 0 && dyn[ s + 3 ][ i1 ][ i2 ][ i3-1 ][ i4 ][ i5 ][ i6 ] == 0 )
								 dyn[ s ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] = 3;
							else
							 if ( i2 > 0 && dyn[ s + 2 ][ i1 ][ i2-1 ][ i3 ][ i4 ][ i5 ][ i6 ] == 0 )
								 dyn[ s ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] = 2;
							else
							 if ( i1 > 0 && dyn[ s + 1 ][ i1-1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] == 0 )
								 dyn[ s ][ i1 ][ i2 ][ i3 ][ i4 ][ i5 ][ i6 ] = 1;
                    }
   }

	return dyn[ sum ][ s1[ 1 ] ][ s1[ 2 ] ][ s1[ 3 ] ][ s1[ 4 ] ][ s1[ 5 ] ][ s1[ 6 ] ];
}


int main( )
{
	indata( );
   cout << geta( turn ) << " " << solve( s, sum ) << endl;

	return 0;
}
