import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

/**
 * <pre>
 *AOJ Rummy?????????????????????????????????????????????????????°
 * </pre>
 *
 * @author ??????
 * @category AOJRummy
 * @version 1.8_45
 * @since 1.8_45
 */
public class Main{

	public static void main(String[] args) throws NumberFormatException, IOException {

		// ?????????????????????
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// ?????????????????°
		int card_huda = 9;

		// 1??????????????????set?????°??????????????°
		int set = Integer.parseInt(br.readLine());

		// for????????? set????????°?????????
		for (int cnt1 = 0; cnt1 < set; cnt1++) {

			/**
			 * @param cardArr
			 *            ????´???´???
			 * @param tmpNum
			 *            ??°???????????±
			 * @param tmpColor
			 *            ???????????±
			 */
			ArrayList<UTRummyCard> cardArr = new ArrayList<UTRummyCard>();

			// ??????????????°??????????????¨????????????
			String tmpNum = br.readLine();

			// ??????????????????????????¨????????????
			String tmpColor = br.readLine();

			/**
			 * String?????°???????§£ ??°????????????????´?
			 *
			 * @param transNum
			 *            ??°???????????±???????´???´???
			 * @param transColor
			 *            ???????????±???????´???´???
			 */
			String[] transNum = tmpNum.split(" ");
			String[] transColor = tmpColor.split(" ");

			// ?????????????????°?????????
			for (int cnt2 = 0; cnt2 < card_huda; cnt2++) {
				boolean tool = false;
				// ????´??????????????????????????????????????????????
				// ????¨?????????????????????\
				cardArr.add(new UTRummyCard(Integer.parseInt(transNum[cnt2]), transColor[cnt2], tool));
			}

			/**
			 * ???????????¶??????????????°??? ????????????????????°0
			 */
			// ????????????????¨??????????????????????
			utRummyGame(cardArr);
		}
	}// ?????????????????????????????????

	/**
	 * ????????????????????´??? ??????????¨?
	 *
	 * @param result2
	 *
	 * @return result ??????????????????????????????
	 */
	private static void utRummyGame(ArrayList<UTRummyCard> cardArr) {

		// ?????????????????\?????°??????????????????????????????R, G, B????????°????????????
		cardNum_Color_Sort(cardArr);

		// ?????£?¶????????????°????????????????¨?
		// ?????????????????????
		cardInspection(cardArr);

		outputAnswer(cardArr);

	}// utRummy????????????????????????

	private static void outputAnswer(ArrayList<UTRummyCard> cardArr) {
		// ???????????????????????????????¢????
		int toolcnt = 0;
		for (int cnt = 0; cnt < cardArr.size(); cnt++) {
			if (cardArr.get(cnt).isUse() == false) {
				toolcnt++;
			}
		}

		// ????????????????????????????????°???????????§????????????????????§???????????£???????????¨?????¶????????????????????¨????¨?
		if (toolcnt == 0) {
			// ??????????????¨??¶??????????????????????????°???????????¶????????????
			int result = 1;
			System.out.println(result);
		} else {
			// ????????????????????????????????¨?????¶??????????????????
			int result = 0;
			System.out.println(result);
		}
	}//outputAnswer????????????????????????

	// ?????????
	/**
	 * ???????????¶?????????????´???¨???????????????????±?????????????????????¨ (1)????????????????????????????????? (3)????¨????????????????
	 *
	 * @param cardArr
	 *            ????¨?????±????????????????
	 */
	private static void cardInspection(ArrayList<UTRummyCard> cardArr) {

		for (int cnt1 = 0; cnt1 < cardArr.size() - 2; cnt1++) {
			for (int cnt2 = cnt1 + 1; cnt2 < cardArr.size() - 1; cnt2++) {
				for (int cnt3 = cnt2 + 1; cnt3 < cardArr.size(); cnt3++) {

					// (1)????¨????????????????
					if (cardArr.get(cnt1).isUse() == false && cardArr.get(cnt2).isUse() == false
							&& cardArr.get(cnt3).isUse() == false) {
						// (2)?????????????????????????????????
						if (cardArr.get(cnt1).getRearColor().equals(cardArr.get(cnt2).getRearColor())
								&& cardArr.get(cnt2).getRearColor().equals(cardArr.get(cnt3).getRearColor())) {
							if (cardArr.get(cnt1).getFrontnumber() == cardArr.get(cnt2).getFrontnumber() - 1
									&& cardArr.get(cnt1).getFrontnumber() == cardArr.get(cnt3).getFrontnumber() - 2) {

								// for (int tool = cnt1; tool <= cnt3; tool++) {
								// cardArr.get(tool).setUse(true);
								// }
								// ?????????
								cardArr.get(cnt1).setUse(true);
								cardArr.get(cnt2).setUse(true);
								cardArr.get(cnt3).setUse(true);
							}
							if (cardArr.get(cnt1).getFrontnumber() == cardArr.get(cnt2).getFrontnumber()
									&& cardArr.get(cnt2).getFrontnumber() == cardArr.get(cnt3).getFrontnumber()) {
								for (int tool = cnt1; tool <= cnt3; tool++) {
									cardArr.get(tool).setUse(true);
								}
								// ?????????
								// cardArr.get(cnt1).setUse(true);
								// cardArr.get(cnt2).setUse(true);
								// cardArr.get(cnt3).setUse(true);
							}
						}
					}
				}
			}
		}
	}// cardInspection????????????????????????

	/**
	 * ??????????????°?????\????????\??´??????
	 *
	 * ??????R, G, B????????°????????????
	 *
	 * @param cardArr
	 *            ??´???????±????????????????
	 */
	private static void cardNum_Color_Sort(ArrayList<UTRummyCard> cardArr) {

		for (int cnt1 = 0; cnt1 < cardArr.size() - 1; cnt1++) {
			for (int cnt2 = 0; cnt2 < cardArr.size() - 1 - cnt1; cnt2++) {
				if (cardArr.get(cnt2).getFrontnumber() > cardArr.get(cnt2 + 1).getFrontnumber()) {
					// ??°???????????????????????????????????°
					UTRummyCard tmp_Number = cardArr.get(cnt2);
					cardArr.set(cnt2, cardArr.get(cnt2 + 1));
					cardArr.set(cnt2 + 1, tmp_Number);
				}
				if (cardArr.get(cnt2).getRearColor().charAt(0) < cardArr.get(cnt2 + 1).getRearColor().charAt(0)) {
					// ???????????????????????????????????°
					UTRummyCard tmp_Color = cardArr.get(cnt2);
					cardArr.set(cnt2, cardArr.get(cnt2 + 1));
					cardArr.set(cnt2 + 1, tmp_Color);
				}
			}
		}
	}// cardNum_Color_Sort????????????????????????

}// Rummy4?????????????????????

/**
 * ?????????Card
 *
 * @author ?????????????????§???
 */
class UTRummyCard {

	/**
	 * int ??????????????°????????\????????±????????\???
	 */
	private int frontnumber = 0;

	/**
	 * String ????????????????????\????????±????????\???
	 */
	private String rearColor = "";

	/**
	 * ????????????????¨??????????
	 */
	private boolean isUse = false;

	/**
	 * ??????????????°???????????????????????????
	 *
	 * @return int?????????
	 */
	public int getFrontnumber() {
		return frontnumber;
	}

	/**
	 * ?????????????????????int????????\????????????????????????????????????
	 *
	 * @param frontnumber
	 *            int?????????
	 */
	public void setFrontnumber(int frontnumber) {
		this.frontnumber = frontnumber;
	}

	/**
	 * ???????????????????????????????????????
	 *
	 * @return String?????????
	 */
	public String getRearColor() {
		return rearColor;
	}

	/**
	 * ?????????????????????String????????\????????????????????????????????????
	 *
	 * @param rearColor
	 *            String?????????
	 */
	public void setRearColor(String rearColor) {
		this.rearColor = rearColor;
	}

	/**
	 * ????????????????????????
	 */
	public UTRummyCard() {

	}

	/**
	 * boolean???????£????????????????????????????
	 *
	 * @return boolean?????????
	 */
	public boolean isUse() {
		return isUse;
	}

	/**
	 * ?????????????????????boolean???????£???????????????????????????????
	 *
	 * @param isUse
	 *            boolean?????????
	 */
	public void setUse(boolean isUse) {
		this.isUse = isUse;
	}

	/**
	 * ????????????????????????????????????????????????????????°??¨??????int,String???
	 *
	 * @param num
	 *            ???????????????????????????????????°???
	 * @param color
	 *            ????????????????????????????????????
	 * @param isUse
	 *            ????¨??????¨?????§??????????£????
	 */
	public UTRummyCard(int num, String color, boolean tool) {
		frontnumber = num;
		rearColor = color;
		isUse = tool;
	}
}// UTRummyCard?????????????????????

Measured memory_bytes: 24716