#include <iostream>
#include <cmath>
#include <map>

using namespace std;

map<string, int> poeni;
void poredi(string A, string B)
{
    int duzinaA = A.length();
    int duzinaB = B.length();

    bool AjePobedio = false;
    int i = 0;
    while(i < duzinaA || i < duzinaB) {
        char c1 = A[i % duzinaA];
        char c2 = B[i % duzinaB];
        if (int(c1) > int(c2))
        {
            AjePobedio = true;
            break;
        }
        else if (int(c1)< int(c2))
            break;
        else
            i++;
    }
    if (AjePobedio)
        poeni[A]++;
    else
        poeni[B]++;
}
int main()
{
    string A, B, C;
    cin >> A;
    cin >> B;
    cin >> C;

    if (A == B && B == C)
        cout << A + B + C << endl;

    poeni[A] = 0;
    poeni[B] = 0;
    poeni[C] = 0;

    poredi(A, B);
    poredi(A, C);
    poredi(B, C);

    int maxi = -1;
    string maxi1s = "";
    for (auto it : poeni)
        if (it.second > maxi)
        {
            maxi = it.second;
            maxi1s = it.first;
        }

    maxi = -1;
    string maxi2s = "";
    for (auto it : poeni)
        if (it.second > maxi && it.first != maxi1s)
        {
            maxi = it.second;
            maxi2s = it.first;
        }

    maxi = 1389;//min
    string maxi3s = "";
    for (auto it : poeni)
        if (it.second < maxi)
        {
            maxi = it.second;
            maxi3s = it.first;
        }

    cout << maxi1s + maxi2s + maxi3s << endl;

    return 0;
}