#include <stdio.h>



int checkResult(int *mat,int mat_i);

int main(void) {

	// Rummy
	int ds,ds_i;
	int num[9];
	char col[10];
	int r[9],g[9],b[9];
	int ri,gi,bi;
	int i;
	int r_check,g_check,b_check;

	// ????????????????????°????????????
	scanf("%d",&ds);

	for(ds_i=0; ds_i<ds; ds_i++){
	// ?????????????????????????????????????????????

		// ?????????
		for(i=0; i<9; i++){
			r[i]=0;
			g[i]=0;
			b[i]=0;
		}
		ri=0;
		gi=0;
		bi=0;

		// ?????????????????????
		for(i=0; i<9; i++){	scanf("%d",&num[i]);	}
		for(i=0; i<9; i++){	scanf("%1s",&col[i]);	}

		// ????????????????????¨????????????????´?
		for(i=0; i<9; i++){
			if(col[i]=='R'){
				r[ num[i]-1 ]++;
				ri++;
			}else if(col[i]=='G'){
				g[ num[i]-1 ]++;
				gi++;
			}else if(col[i]=='B'){
				b[ num[i]-1 ]++;
				bi++;
			}
		}

		// ???(R)?????????
		r_check = checkResult(r,ri);
		// ???(G)?????????
		g_check = checkResult(g,gi);
		// ???(B)?????????
		b_check = checkResult(b,bi);

		if(r_check && g_check && b_check){
			printf("1\n");
		}else{
			printf("0\n");
		}
	}

	return 0;

}

int checkResult(int *mat,int mat_i){
	int result=1;
	int i,j,wk;

	if(mat_i%3!=0){
		// ??????????????£????????????????????????????????????????????????????????????
		result = 0;
	}else if(0<mat_i){
		for(i=0; i<7; i++){
			if(0<mat[i] && 0<mat[i+1] && 0<mat[i+2]){
				wk = 10;
				for(j=0; j<2; j++){
					if(mat[i+j] < wk){
						wk=mat[i+j];
					}
				}
				mat[i+2]-=wk;
				mat[i+1]-=wk;
				mat[i]-=wk;
			}
			if(mat[i]==3){
				mat[i] = 0;
			}
		}
		for(i=0; i<9; i++){
			if(mat[i]!=0){
				result = 0;
			}
		}
	}
	for(i=0; i<9; i++){
		printf("%d ",mat[i]);
	}
	printf("\n");
	
	return result;
}
	