#include <bits/stdc++.h>
using namespace std;
 
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    string X, Y;
    if (!getline(cin, X)) return 0;
    if (!getline(cin, Y)) return 0;
    int m = (int)X.size(), n = (int)Y.size();
 
    vector<vector<int>> lcs(m + 1, vector<int>(n + 1, 0));
    for (int i = m - 1; i >= 0; --i)
        for (int j = n - 1; j >= 0; --j)
            lcs[i][j] = (X[i] == Y[j]) ? 1 + lcs[i + 1][j + 1] : max(lcs[i + 1][j], lcs[i][j + 1]);
 
    vector<vector<int>> nx(m + 1, vector<int>(26, m)), ny(n + 1, vector<int>(26, n));
    for (int i = m - 1; i >= 0; --i) {
        nx[i] = nx[i + 1];
        nx[i][X[i] - 'a'] = i;
    }
    for (int j = n - 1; j >= 0; --j) {
        ny[j] = ny[j + 1];
        ny[j][Y[j] - 'a'] = j;
    }
 
    string Z;
    int i = 0, j = 0, rem = lcs[0][0];
    while (rem > 0) {
        for (int c = 0; c < 26; ++c) {
            int i1 = nx[i][c], j1 = ny[j][c];
            if (i1 < m && j1 < n && lcs[i1 + 1][j1 + 1] == rem - 1) {
                Z.push_back(char('a' + c));
                i = i1 + 1; j = j1 + 1; --rem;
                break;
            }
        }
    }
 
    vector<vector<int>> scs(m + 1, vector<int>(n + 1, 0));
    for (int i = m - 1; i >= 0; --i) scs[i][n] = m - i;
    for (int j = n - 1; j >= 0; --j) scs[m][j] = n - j;
    for (int i = m - 1; i >= 0; --i)
        for (int j = n - 1; j >= 0; --j)
            scs[i][j] = (X[i] == Y[j]) ? 1 + scs[i + 1][j + 1] : 1 + min(scs[i + 1][j], scs[i][j + 1]);
 
    string Z2;
    i = 0; j = 0;
    while (i < m || j < n) {
        if (i == m) { Z2.push_back(Y[j++]); }
        else if (j == n) { Z2.push_back(X[i++]); }
        else if (X[i] == Y[j]) { Z2.push_back(X[i]); ++i; ++j; }
        else {
            if (scs[i + 1][j] < scs[i][j + 1]) { Z2.push_back(X[i++]); }
            else if (scs[i + 1][j] > scs[i][j + 1]) { Z2.push_back(Y[j++]); }
            else {
                if (X[i] <= Y[j]) Z2.push_back(X[i++]);
                else Z2.push_back(Y[j++]);
            }
        }
    }
 
    cout << Z << "\n" << Z2 << "\n";
    return 0;
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBzdHJpbmcgWCwgWTsKICAgIGlmICghZ2V0bGluZShjaW4sIFgpKSByZXR1cm4gMDsKICAgIGlmICghZ2V0bGluZShjaW4sIFkpKSByZXR1cm4gMDsKICAgIGludCBtID0gKGludClYLnNpemUoKSwgbiA9IChpbnQpWS5zaXplKCk7CgogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBsY3MobSArIDEsIHZlY3RvcjxpbnQ+KG4gKyAxLCAwKSk7CiAgICBmb3IgKGludCBpID0gbSAtIDE7IGkgPj0gMDsgLS1pKQogICAgICAgIGZvciAoaW50IGogPSBuIC0gMTsgaiA+PSAwOyAtLWopCiAgICAgICAgICAgIGxjc1tpXVtqXSA9IChYW2ldID09IFlbal0pID8gMSArIGxjc1tpICsgMV1baiArIDFdIDogbWF4KGxjc1tpICsgMV1bal0sIGxjc1tpXVtqICsgMV0pOwoKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gbngobSArIDEsIHZlY3RvcjxpbnQ+KDI2LCBtKSksIG55KG4gKyAxLCB2ZWN0b3I8aW50PigyNiwgbikpOwogICAgZm9yIChpbnQgaSA9IG0gLSAxOyBpID49IDA7IC0taSkgewogICAgICAgIG54W2ldID0gbnhbaSArIDFdOwogICAgICAgIG54W2ldW1hbaV0gLSAnYSddID0gaTsKICAgIH0KICAgIGZvciAoaW50IGogPSBuIC0gMTsgaiA+PSAwOyAtLWopIHsKICAgICAgICBueVtqXSA9IG55W2ogKyAxXTsKICAgICAgICBueVtqXVtZW2pdIC0gJ2EnXSA9IGo7CiAgICB9CgogICAgc3RyaW5nIFo7CiAgICBpbnQgaSA9IDAsIGogPSAwLCByZW0gPSBsY3NbMF1bMF07CiAgICB3aGlsZSAocmVtID4gMCkgewogICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgMjY7ICsrYykgewogICAgICAgICAgICBpbnQgaTEgPSBueFtpXVtjXSwgajEgPSBueVtqXVtjXTsKICAgICAgICAgICAgaWYgKGkxIDwgbSAmJiBqMSA8IG4gJiYgbGNzW2kxICsgMV1bajEgKyAxXSA9PSByZW0gLSAxKSB7CiAgICAgICAgICAgICAgICBaLnB1c2hfYmFjayhjaGFyKCdhJyArIGMpKTsKICAgICAgICAgICAgICAgIGkgPSBpMSArIDE7IGogPSBqMSArIDE7IC0tcmVtOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBzY3MobSArIDEsIHZlY3RvcjxpbnQ+KG4gKyAxLCAwKSk7CiAgICBmb3IgKGludCBpID0gbSAtIDE7IGkgPj0gMDsgLS1pKSBzY3NbaV1bbl0gPSBtIC0gaTsKICAgIGZvciAoaW50IGogPSBuIC0gMTsgaiA+PSAwOyAtLWopIHNjc1ttXVtqXSA9IG4gLSBqOwogICAgZm9yIChpbnQgaSA9IG0gLSAxOyBpID49IDA7IC0taSkKICAgICAgICBmb3IgKGludCBqID0gbiAtIDE7IGogPj0gMDsgLS1qKQogICAgICAgICAgICBzY3NbaV1bal0gPSAoWFtpXSA9PSBZW2pdKSA/IDEgKyBzY3NbaSArIDFdW2ogKyAxXSA6IDEgKyBtaW4oc2NzW2kgKyAxXVtqXSwgc2NzW2ldW2ogKyAxXSk7CgogICAgc3RyaW5nIFoyOwogICAgaSA9IDA7IGogPSAwOwogICAgd2hpbGUgKGkgPCBtIHx8IGogPCBuKSB7CiAgICAgICAgaWYgKGkgPT0gbSkgeyBaMi5wdXNoX2JhY2soWVtqKytdKTsgfQogICAgICAgIGVsc2UgaWYgKGogPT0gbikgeyBaMi5wdXNoX2JhY2soWFtpKytdKTsgfQogICAgICAgIGVsc2UgaWYgKFhbaV0gPT0gWVtqXSkgeyBaMi5wdXNoX2JhY2soWFtpXSk7ICsraTsgKytqOyB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChzY3NbaSArIDFdW2pdIDwgc2NzW2ldW2ogKyAxXSkgeyBaMi5wdXNoX2JhY2soWFtpKytdKTsgfQogICAgICAgICAgICBlbHNlIGlmIChzY3NbaSArIDFdW2pdID4gc2NzW2ldW2ogKyAxXSkgeyBaMi5wdXNoX2JhY2soWVtqKytdKTsgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChYW2ldIDw9IFlbal0pIFoyLnB1c2hfYmFjayhYW2krK10pOwogICAgICAgICAgICAgICAgZWxzZSBaMi5wdXNoX2JhY2soWVtqKytdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IFogPDwgIlxuIiA8PCBaMiA8PCAiXG4iOwogICAgcmV0dXJuIDA7Cn0K