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

public class Main{

	/**
	 * ????????°????????????3????????????????????°?????¶???
	 */
	private static final int TRIPLECARDSET = 9;

	/**
	 * ?????¶??????????????????????????????????????????????????????
	 */
	private static final String ZERO = "0";

	/**
	 * ??????for??????????????????????¨?????????????????????????????????????????????????????????°
	 */
	private static final int ADDRESSPLUSZERO = 0;

	/**
	 * ??????for??????????????????????¨?????????????????????????????????????????????????????????°
	 */
	private static final int ADDRESSPLUSONE = 1;

	/**
	 * ??????for??????????????????????¨?????????????????????????????????????????????????????????°
	 */
	private static final int ADDRESSPLUSTWO = 2;

	/**
	 * ??????????????§BufferedReader?????????
	 *
	 * @throws NumberFormatException
	 *
	 * @throws IOException
	 *             try-catch???????????????throws IOException?????£?¨??????????
	 */
	public static void main(String[] args) throws NumberFormatException, IOException {

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

		// ?????????????´???´???
		ArrayList<Integer> answer = new ArrayList<Integer>();

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

		// ????????????????´???´???
		ArrayList<CardTC> cardArr = new ArrayList<CardTC>();

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

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

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

			for (int cnt2 = 0; cnt2 < transColor.length; cnt2++) {
				cardArr.add(new CardTC(Integer.parseInt(transNum[cnt2]), transColor[cnt2]));
			}

			/**
			 * ???????????¶??????????????°??? ????????????????????°0
			 */
			// result????????????????????????????´???´???
			int result = utRummy(cardArr);
			// ?????????????´?
			answer.add(result);

			// ??¢??¬????????????????????????????????§??????????????§?????????????\?
			cardArr.clear();

		}
		// for????????? ??????????????????????????????
		for (int cnt = ADDRESSPLUSZERO; cnt < answer.size(); cnt++) {
			// ???????????????
			System.out.println(answer.get(cnt));
		}

	}// ?????????????????????????????????

	private static int utRummy(ArrayList<CardTC> cardArr) {
		// TODO ?????????????????????????????????????????????

		// ?????????0???????????????
		int result = ADDRESSPLUSZERO;
		// ???????????????0???????????????
		int count = ADDRESSPLUSZERO;

		// ???????????????????????´???
		Collections.sort(cardArr, new Comparator<CardTC>() {
			@Override
			public int compare(CardTC numA, CardTC numB) {
				return numA.getFrontnumber() - numB.getFrontnumber();
			}
		});

		// 3??£?¶????????????????????????°?¶????
		serialCard(cardArr);

		// ??????????????????3???????????°?¶????
		sameCard(cardArr);

		// ???????????????????????´???
		Collections.sort(cardArr, new Comparator<CardTC>() {
			@Override
			public int compare(CardTC numA, CardTC numB) {
				return numA.getFrontnumber() - numB.getFrontnumber();
			}
		});

		for (int cnt = ADDRESSPLUSZERO; cnt < cardArr.size(); cnt++) {

			/**
			 * ?????¶????????????????????????????????§???????????????ZERO????????\?????????????????????????????£?????????
			 */
			if (cardArr.get(cnt).getRearColor() == ZERO) {

				// ?????\?????????????????????????????°?????°??????
				count++;

				// ?????¶??????????????°???????????????
				// ?????????????????°??????????¶????????????¨???????????????????????????
				if (count == TRIPLECARDSET) {// ?????§??????????????????
					result = ADDRESSPLUSONE;
				}
			}
		}

		return result;
	}// utRummy????????????

	private static void sameCard(ArrayList<CardTC> cardArr) {
		// TODO ?????????????????????????????????????????????

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

					// (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()
								&& cardArr.get(cnt2).getFrontnumber() == cardArr.get(cnt3).getFrontnumber()) {

							// (3)???????????§?????????????????????????????£??????????????§??????????????°
							if (!(cardArr.get(cnt1).getRearColor()).contains(ZERO)
									&& !(cardArr.get(cnt2).getRearColor()).contains(ZERO)
									&& !(cardArr.get(cnt3).getRearColor()).contains(ZERO)) {

								// ??¨???????????¶??????????????°??????????????????????????????"0"????????\
								cardArr.remove(cnt1);
								cardArr.add(cnt1, (new CardTC(ZERO)));
								cardArr.remove(cnt2);
								cardArr.add(cnt2, (new CardTC(ZERO)));
								cardArr.remove(cnt3);
								cardArr.add(cnt3, (new CardTC(ZERO)));
							}
						}
					}
				}
			}
		}

	}// sameCard????????????

	private static void serialCard(ArrayList<CardTC> cardArr) {
		// TODO ?????????????????????????????????????????????
		for (int cnt1 = 0; cnt1 < cardArr.size() - ADDRESSPLUSTWO; cnt1++) {
			for (int cnt2 = cnt1 + ADDRESSPLUSONE; cnt2 < cardArr.size() - ADDRESSPLUSONE; cnt2++) {
				for (int cnt3 = cnt2 + ADDRESSPLUSONE; cnt3 < cardArr.size(); cnt3++) {

					// (2)?????????????????????????????????
					if (cardArr.get(cnt1).getRearColor().equals(cardArr.get(cnt2).getRearColor())
							&& cardArr.get(cnt2).getRearColor().equals(cardArr.get(cnt3).getRearColor())) {


						// (1)3??£?¶??????°????????????
						if (cardArr.get(cnt1).getFrontnumber() == cardArr.get(cnt2).getFrontnumber() - 1
								&& cardArr.get(cnt1).getFrontnumber() == cardArr.get(cnt3).getFrontnumber() - 2) {


							// (3)???????????§?????????????????????????????£??????????????§??????????????°
							if (!(cardArr.get(cnt1).getRearColor()).equals(ZERO)
									&& !(cardArr.get(cnt2).getRearColor()).equals(ZERO)
									&& !(cardArr.get(cnt3).getRearColor()).equals(ZERO)) {

								// ??¨???????????¶??????????????°????????§?¨?????¶?????????????????????????????????????"0"????????\
								cardArr.remove(cnt1);
								cardArr.add(cnt1, (new CardTC(ZERO)));
								cardArr.remove(cnt2);
								cardArr.add(cnt2, (new CardTC(ZERO)));
								cardArr.remove(cnt3);
								cardArr.add(cnt3, (new CardTC(ZERO)));
							}
						}
					}
				}
			}
		}
	}// serialCard????????????
}// DebugRu????????????

class CardTC {

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

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

	public CardTC() {
		// TODO ?????????????????????????????????????????????????????????
	}
	/**
	 * ????????°?????????????????????????????´???,???????????¨?????¨
	 * ???) ?????????????????¶??????????????°??¢???????????±????¶??????¨??????
	 *
	 * @param ZERO ????????° ZERO
	 */
	public CardTC(String ZERO) {
		rearColor = ZERO;
	}


	public CardTC(int num, String color) {
		// TODO ?????????????????????????????????????????????????????????
		frontnumber = num;
		rearColor = color;
	}

	public int getFrontnumber() {
		return frontnumber;
	}

	public void setFrontnumber(int frontnumber) {
		this.frontnumber = frontnumber;
	}

	public String getRearColor() {
		return rearColor;
	}

	public void setRearColor(String rearColor) {
		this.rearColor = rearColor;
	}
}// CardTC????????????

Measured memory_bytes: 25104