#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <fstream>
#include <cstdlib>
#include <cmath>
#include <cassert>

using namespace std;

string parse(string a, string b) {
    assert(a.size() == b.size());
    if (a.size() < 2) return string();
    if (a[0] == 'x' && b[0] == 'x') {
        if (a[1] == '.' && b[1] == 'x') {
            if (a.size() > 3 && a[2] == 'x' && b[2] == 'x') {
                string na;
                na = parse(a.substr(2), b.substr(2));
                string nb;
                if (a.size() >= 3)
                    nb = parse(a.substr(3), b.substr(3));
                string r;
                if (nb.size() != 0) {
                    r.push_back('C');
                    for (int i = 0; i < nb.size(); i++) r.push_back(nb[i]);
                } else if (na.size() != 0) {
                    r.push_back('A');
                    for (int i = 0; i < na.size(); i++) r.push_back(na[i]);
                } else {
                    return string();
                }
                return r;
            } else if (a.size() == 3) {
                return "C";
            } else {
                string r;
                r.push_back('A');
                if (a.size() == 3) return string();
                if (a.size() > 3) {
                    string n = parse(a.substr(2), b.substr(2));
                    if (n.size() == 0) return n;
                    for (int i = 0; i < n.size(); i++) r.push_back(n[i]);
                }
                return r;
            }
        } else if (a[1] == 'x' && b[1] == 'x') {
            string r;
            r.push_back('B');
            if (a.size() == 3) return string();
            if (a.size() > 3) {
                string n = parse(a.substr(2), b.substr(2));
                if (n.size() == 0) return n;
                for (int i = 0; i < n.size(); i++) r.push_back(n[i]);
            }
            return r;
        } else {
            return string();
        }
    } else if (a[0] == 'x' && b[0] == '.') {
        if (a[1] != 'x' || b[1] != 'x') {
            return string();
        }
        if (a.size() > 3 && a[2] == 'x' && b[2] == 'x') {
            string na;
            na = parse(a.substr(2), b.substr(2));
            string nb;
            if (a.size() >= 3)
                nb = parse(a.substr(3), b.substr(3));
            string r;
            if (nb.size() != 0) {
                r.push_back('E');
                for (int i = 0; i < nb.size(); i++) r.push_back(nb[i]);
            } else if (na.size() != 0) {
                r.push_back('D');
                for (int i = 0; i < na.size(); i++) r.push_back(na[i]);
            } else {
                return string();
            }
            return r;
        } else if (a.size() == 3) {
            return "E";
        } else {
            string r;
            r.push_back('D');
            if (a.size() == 3) return string();
            if (a.size() > 3) {
                string n = parse(a.substr(2), b.substr(2));
                if (n.size() == 0) return n;
                for (int i = 0; i < n.size(); i++) r.push_back(n[i]);
            }
            return r;
        }
    } else {
        return string();
    }
}

int main() {
    ifstream in("DATA4.txt");
    ofstream out("OUT4.txt");
    
    for (int i = 0; i < 5; i++) {
        string a, b;
        in >> a >> b;
        out << parse(a, b) << endl;
    }
}

