import java.util.Scanner;

// 首先要弄清这道题的条件:
// 如果长度只出现一次,且小于其他选项长度 -> 一短
// 如果长度只出现一次,且大于其他选项长度 -> 一长
// 其他 -> 参差不齐
// 同时答案的优先级为:三长一短、三短一长、参差不齐
// 例如: a>b>c>d 应为三长一短


public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = Integer.parseInt(scanner.nextLine());

        for (int t = 0; t < T; t++) {
            // 读取四个选项
            String a = scanner.nextLine();
            String b = scanner.nextLine();
            String c = scanner.nextLine();
            String d = scanner.nextLine();

            // 获取每个选项的长度
            int lenA = a.length();
            int lenB = b.length();
            int lenC = c.length();
            int lenD = d.length();

            // 统计每个长度的出现次数
            int countA = countOccurrences(lenA, lenB, lenC, lenD);
            int countB = countOccurrences(lenB, lenA, lenC, lenD);
            int countC = countOccurrences(lenC, lenA, lenB, lenD);
            int countD = countOccurrences(lenD, lenA, lenB, lenC);

            // 判断是否为三长一短
            boolean isThreeLongOneShort = false;
            char result = ' ';
            if (countA == 1 && lenA < lenB && lenA < lenC && lenA < lenD) {
                isThreeLongOneShort = true;
                result = 'A';
            } else if (countB == 1 && lenB < lenA && lenB < lenC && lenB < lenD) {
                isThreeLongOneShort = true;
                result = 'B';
            } else if (countC == 1 && lenC < lenA && lenC < lenB && lenC < lenD) {
                isThreeLongOneShort = true;
                result = 'C';
            } else if (countD == 1 && lenD < lenA && lenD < lenB && lenD < lenC) {
                isThreeLongOneShort = true;
                result = 'D';
            }

            if (isThreeLongOneShort) {
                System.out.println(result);
                continue;
            }

            // 判断是否为三短一长
            boolean isThreeShortOneLong = false;
            if (countA == 1 && lenA > lenB && lenA > lenC && lenA > lenD) {
                isThreeShortOneLong = true;
                result = 'A';
            } else if (countB == 1 && lenB > lenA && lenB > lenC && lenB > lenD) {
                isThreeShortOneLong = true;
                result = 'B';
            } else if (countC == 1 && lenC > lenA && lenC > lenB && lenC > lenD) {
                isThreeShortOneLong = true;
                result = 'C';
            } else if (countD == 1 && lenD > lenA && lenD > lenB && lenD > lenC) {
                isThreeShortOneLong = true;
                result = 'D';
            }

            if (isThreeShortOneLong) {
                System.out.println(result);
                continue;
            }

            // 否则是参差不齐,选C
            System.out.println('C');
        }

        scanner.close();
    }

    // 统计目标长度在四个长度中出现的次数
    private static int countOccurrences(int target, int a, int b, int c) {
        int count = 1; // 至少出现一次(自身)
        if (a == target) count++;
        if (b == target) count++;
        if (c == target) count++;
        return count;
    }
}