#include<bits/stdc++.h>
#include <tuple>
using namespace std;
string s[555][5];int T=0;int a[555][5];char chu[5]={'o','A','B','C','D'};
int main(){
    cin>>T;
    for (int i=1;i<=T;++i) {
    bool da=0,xiao=0;int o=0;
    for (int j=1;j<=4;++j) {
    cin>>s[i][j];a[i][j]=(s[i][j].size());
    }
    for (int j=1;j<=4;++j) {
        int jishu=0;
    for(int k=1;k<=4;++k){
        if(j==k){
            continue;
        }
        if(a[i][j]>a[i][k]){
            jishu++;
        }
        if (jishu==3) {
        da=1;o=j;
        }
    }
    }
    for (int j=1;j<=4;++j) {
        int jishu=0;
    for(int k=1;k<=4;++k){
        if(j==k){
            continue;
        }
        if(a[i][j]<a[i][k]){
            jishu++;
        }
        if (jishu==3) {
        xiao=1;o=j;
        }
    }
    }
    if ((da||xiao)&&(!(da&&xiao))) {
    cout<<chu[o]<<endl;
    }else {
    cout<<'C'<<endl;
    }
    }
    return 0;
}

又臭又长,有没有大佬能优化一下三长一短那部分的判断QWQ