import java.util.Scanner;
publicclass Main {
int[][] map =newint[ 10 ][ 10 ];
publicstaticvoid main ( String [] args ) {
Main main = new Main () ;
main. init () ;
}
void init () {
buildMap() ;
// print();
Scanner scanner = new Scanner ( System .in) ;
while (scanner. hasNext ()) {
touch( scanner .nextInt()) ;
}
}
privatevoid touch (int tar ) {
int i, j;
if ( tar == 100 ) {
i = 9 ;
j = 9 ;
} elseif ( tar == 1 ) {
i = 0 ;
j = 0 ;
} else {
j = ( tar - 1 ) % 10 ;
i = ( tar - 1 ) / 10 ;
}
if (map[i][j] != - 1 ) {
touch (i, j) ;
}
zhegnli() ;
// printMap();
print() ;
}
privatevoid printMap () {
for ( int i = 0 ; i < 10 ; i++ ) {
StringBuffer sb = new StringBuffer () ;
for ( int j = 0 ; j < 10 ; j++ ) {
sb. append (map[i][j] + " " ) ;
}
System . out .println( sb .toString()) ;
}
System . out .println() ;
}
privatevoid print () {
int red = 0 , green = 0 , blue = 0 , yellow = 0 , puple = 0 ;
for ( int i = 0 ; i < 10 ; i++ ) {
for ( int j = 0 ; j < 10 ; j++ ) {
int now = map[i][j] ;
if (now == 0 )
red++;
else if (now == 1 )
green++;
else if (now == 2 )
blue++;
else if (now == 3 )
yellow++;
else if (now == 4 )
puple++;
}
}
System .out. println (red + " " + green + " " + blue + " " + yellow + " " + puple) ;
}
privatevoid zhegnli () {
for ( int i = 0 ; i < 10 ; ) {
if (shuIsNull( i )) {
moveLeft( i ) ;
} else {
i++;
}
}
for ( int j = 0 ; j < 10 ; j++ ) {
int pos = 9 ;
for ( int i = 9 ; i >= 0 ; i-- ) {
if (map[i][j] != - 1 ) {
map[pos-- ][j] = map[i][j] ;
} else {
// System.out.println("change " + i + "," + pos);
}
}
for ( int i = pos; i >= 0 ; i-- ) {
map[i][j] = - 1 ;
}
}
}
privatevoid moveLeft (int pos ) {
for ( int i = pos + 1 ; i < 10 ; i++ ) {
for ( int j = 0 ; j < 10 ; j++ ) {
map[j][i - 1 ] = map[j][i] ;
map[j][i] = - 1 ;
}
}
}
privateboolean shuIsNull (int pos ) {
for ( int i = 0 ; i < 10 ; i++ ) {
if (map[i][ pos ] != - 1 )
returnfalse;
}
returntrue;
}
privatevoid touch (int i,int j ) {
// System.out.println("touch "+i+","+j);
deal ( i , j , map[ i ][ j ]) ;
}
privatevoid deal (int i,int j,int tar ) {
if ( in ( i , j ) && map[ i ][ j ] == tar ) {
map[ i ][ j ] = - 1 ;
deal ( i + 1 , j , tar ) ;
deal ( i - 1 , j , tar ) ;
deal ( i , j + 1 , tar ) ;
deal ( i , j - 1 , tar ) ;
}
}
privateboolean in (int i,int j ) {
if ( i >= 0 && i < 10 && j >= 0 && j < 10 )
returntrue;
else
returnfalse;
}
privatevoid buildMap () {
String [] strs = { "RED,RED,BLUE,BLUE,GREEN,YELLOW,BLUE,YELLOW,RED,PURPLE",
"GREEN,GREEN,GREEN,BLUE,RED,PURPLE,RED,YELLOW,YELLOW,BLUE",
"BLUE,RED,RED,YELLOW,YELLOW,PURPLE,BLUE,GREEN,GREEN,BLUE",
"YELLOW,RED,BLUE,YELLOW,BLUE,RED,PURPLE,GREEN,GREEN,RED",
"YELLOW,RED,BLUE,BLUE,PURPLE,GREEN,PURPLE,RED,YELLOW,BLUE",
"PURPLE,YELLOW,RED,RED,YELLOW,RED,PURPLE,YELLOW,RED,RED",
"YELLOW,YELLOW,GREEN,PURPLE,GREEN,RED,BLUE,YELLOW,BLUE,GREEN",
"RED,YELLOW,BLUE,BLUE,YELLOW,GREEN,PURPLE,RED,BLUE,GREEN",
"GREEN,GREEN,YELLOW,YELLOW,RED,RED,PURPLE,BLUE,BLUE,GREEN",
"PURPLE,BLUE,RED,RED,PURPLE,YELLOW,BLUE,RED,RED,GREEN" } ;
for ( int i = 0 ; i < 10 ; i++ ) {
String [] curs = strs[i] . split ( "," ) ;
for ( int j = 0 ; j < 10 ; j++ ) {
String str = curs[j] ;
int tar = - 1 ;
if (str. equals ( "RED" ))
tar = 0 ;
else if (str. equals ( "GREEN" ))
tar = 1 ;
else if (str. equals ( "BLUE" ))
tar = 2 ;
else if (str. equals ( "YELLOW" ))
tar = 3 ;
else if (str. equals ( "PURPLE" ))
tar = 4 ;
map[i][j] = tar;
}
}
}
}