using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace zad01
{
    class Program
    {
        static void sredi(string a, string b,int a1,int b1,ref string broj)
        {
            int k = Math.Min(a1, b1);
            for (int i = 0; i < k; i++)
            {
                if (a[i] > b[i])
                    broj += a+b;
                else
                if (b[i]<a[i]) broj += b+a;
            }
             if (a1 > b1) broj += a + b;
            else broj += b + a;

        }
        static void Main(string[] args)
        {
            string a = Console.ReadLine();
            string b = Console.ReadLine();
            string c = Console.ReadLine();
            int a1 = a.Length;
            int b1 = b.Length;
            int c1 = c.Length;
            string broj = "";
            int najm = Math.Min(a1,Math.Min( b1, c1));
       

          
            for (int i = 0; i < najm; i++)
            {
                if (a[i] > b[i] && a[i] > c[i])
                { broj += a; if (b[i] > c[i]) broj += b + c; else if (b[i] < c[i]) broj += c + b; }

                if (b[i] > c[i] && b[i] > a[i])
                { broj += b; if (c[i] > a[i]) broj += c + a;else if (c[i] < a[i]) broj += a + c; }

                if (c[i] > b[i] && c[i] > a[i])
                { broj += c; if (b[i] > a[i]) broj += b + a;else if (b[i] < a[i]) broj += a + b; }

            }
            if (broj == c || (broj == "" && najm == c1))
            { sredi(a, b, a1, b1, ref broj); if (broj.Length != a1 + b1 + c1) broj += c; }
            else
                   if (broj == a||(broj == "" && najm == a1))
            { sredi(c, b, c1, b1, ref broj); if (broj.Length != a1 + b1 + c1) broj += a;}
            else if (broj == b||(broj == "" && najm == b1))
            {    sredi(a, c, a1, c1, ref broj); if (broj.Length != a1 + b1 + c1) broj += b;}


        Console.WriteLine(broj);

        }
    }
}