#include <stdio.h>
//#define DEBUG
//#define DEBUG1

void handread(int * , int * , int *);			//????????????????????????????????£???hand???????´?????????¢??°

int judge1(int * , int * , int *);
int judge2(int *);
void judge0(int * , int * , int *);

#ifdef DEBUG
void showhand(int *);			//???????¢??????¨ ?????????hand?????¶????????¨?????????
void showall(int * , int * ,int *);		//??¨??????hand?????¶????????????????????¨?????????
#endif

enum cardcolor{ RED , GREEN , BLUE };

int main (void){

	/*?????????????´?????????????
	  0?????????????????????????¨??????°?????????????????????
	  1???9???????????????????????°???????????????????????°?????????????????????*/

	int i = 0 ;
	int n = 0 ;

	scanf("%d", &n);

	for(i = 1 ; i <= n ; i++ ){					//n?????°?????????

		int handR[10] = {} ;
		int handG[10] = {} ;
		int handB[10] = {} ;

		judge0(handR,handG,handB);

	}//n?????°?????????????????????????????§

	return 0 ;
}




/*
 * handread??¢??°???2????????????????????????????????????????????????????????????
 * ?????¨???????????¢???hand??????????????????hand?????????????????¨??????????????????
 */
void handread(int *handR ,int *handG , int *handB){
	int cnum[9] = {} ;			//???????????????????????°??????????????????
	char color[9] = {} ;		//??????????????????????????°???????????????
	int i = 0 ;

	for( i = 0 ; i < 9 ; i ++){
		scanf("%d", &cnum[i]);
//		printf("%d", cnum[i]);
	}
	for( i = 0 ; i < 9 ; i ++){
		getchar();				//????????????????£???°???
		color[i] = getchar();
//		printf("%c", color[i]);
	}

	for( i = 1 ; i <= 9 ; i++){
		switch(color[i-1]){
		case 'R':
			handR[0]++ ;	//???????????°?????????????????¢??????
			handR[(cnum[i-1])]++ ;	//???i????????°?????????????????¢??????
			break ;

		case 'G':
			handG[0]++ ;	//???????????°?????????????????¢??????
			handG[(cnum[i-1])]++ ;	//???i????????°?????????????????¢??????
			break ;

		case 'B':
			handB[0]++ ;	//???????????°?????????????????¢??????
			handB[(cnum[i-1])]++ ;	//???i????????°?????????????????¢??????
			break ;

		default:
			printf("wrong data");
			break;
		}
	}//???????§????????????????????????§

}


/*judge1????????????????¨??????°?????????????????????*/
/*????¨??????°???0,3,6,9???????????????????????£??????????????¨????????????????§??????§??????????????°???????????????????????¨????????????*/
/*?????????????????????????§??????¢??°????????????????????§????????°??¬??\????????????????????????????????????????????????????????????*/
int judge1(int *handR,int *handG,int *handB){

	if( handR[0]%3 || handG[0]%3 ){
		return 1 ;					//???????????????????????°??????????????????1?????????
	}
	return 0;
}

/*judge2???????????§?????????????§??????????????????????????????????????????????????????????*/
/*?????????????????¨????????§????????°1?????????????????????????????¶???????????????????????°0????????????*/
int judge2(int *hand){
	int i = 0 ;

#ifdef DEBUG1
		printf("????????¶???\n");
		showhand(hand);
#endif

	/*??????????????????????????????i???
	 ????????¨???????????£?????????????????§??????????????????????????§???????°?????????°?????§??????*/
	for( i = 1 ; i <= 7 ; i++){
#ifdef DEBUG1
		printf("%d???????????????????????????\n",i);
		showhand(hand);
#endif
		if(hand[i] < 0){		//0???????°?????????¨?¨?????????¨??????
			return 1 ;			//?????????????§??????§??????????????????????????¨???????????????????????????????????????????????????
		}
		if(hand[i] >= 3 ){
			hand[i] -= 3 ;		//i???3?????\????????£???????????°???????????????????????????3????????¨????????????????????????
			hand[0] -= 3 ;
		}
		if(hand[i]){			//??????i????????£???????????°?????£?????¨??????????????????????????°???????????????
			hand[i+1] -= hand[i];
			hand[i+2] -= hand[i];
			hand[0] -= 3 * hand [i] ;
			hand[i] = 0 ;		//i,i+1,i+2???i????????°???????????????i+1,i+2????????°????¶???????????????°??????????????¨??????
		}
#ifdef DEBUG1
		printf("%d???????????????????????????\n",i);
		showhand(hand);
#endif

	}//1???7???????????????????????§

	/*???????????§???????????§????????£????????????????????????????????¨????????°?????????8???9*/
	/*6,7??????????????§??????????????????3?????¨????????????????§??????§??????????????°???????????????*/
	/*?????????7?????§?????£??????????????§8,9????????°??????????????£???????????´?????????????????????*/
		if(hand[8]%3 || hand[8]< 0|| hand[9]%3 || hand[9] < 0){
			return 1 ;
		}


	/*????????????????????§??°????????????????????????????????????????????????????????¶?????????????????????*/
	return 0;
}

void judge0(int *handR , int *handG , int *handB){

	/*?????????????????????????????????*/
	handread(handR,handG,handB);

#ifdef DEBUG
	showall(handR,handG,handB);
#endif

	/*?????????????¨??????°????????????????????????*/
	if(judge1 (handR,handG,handB) ){		//????????????1?????????????????????
		printf("0\n");
		return;
	}

	/*?????????????????§?????????????§??????§???????????????*/
	if(handR[0]){					//???????????°???0??????????????????????????????
		if(judge2 (handR) ){		//????????????1?????????????????????
			printf("0\n");
			return;
		}
	}								//???????????????????????§

	/*?????????????????§?????????????§??????§???????????????*/
	if(handG[0]){
		if(judge2 (handG) ){
			printf("0\n");
			return;
		}
	}								//???????????????????????§

	/*?????????????????§?????????????§??????§???????????????*/
	if(handB[0]){
		if(judge2 (handB) ){
			printf("0\n");
			return;
		}
	}								//???????????????????????§

	printf("1\n");
	return;

}

Measured memory_bytes: 584