int Main()
{
    string a,b,c,n=0;
    scanf("%s%s%s",&a,&b,&c);
    string niz[3]={a,b,c};
    bool vece=true;
    while(vece&&n<a.length&&n<b.length)
    {
        if ((int)a[n]>(int)b[n]) {n++; continue;}
        else
        {
            swap(&a,&b);
            n=0;
            break;
        }
    }
    
    while(vece&&n<b.length&&n<c.length)
    {
        if ((int)b[n]>(int)c[n]) {n++; continue;}
        else
        {
            swap(&b,&c);
            n=0;
            break;
        }
    }
    
    while(vece&&n<a.length&&n<c.length)
    {
        if ((int)a[n]>(int)c[n]) {n++; continue;}
        else
        {
            swap(&a,&c);
            n=0;
            break;
        }
    }
    printf("%s%s%s"niz[0],niz[1],niz[2]);
    return 0;
}