#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int manjiBroj(int a,int b)
{
    if(a>b) return b;
    return a;

}
int veciBroj(int n,int m,int *x,int *y)
{
    int k=manjiBroj(n,m);
    for(int i=0;i<k;i++)
    {
        if(x[i]>y[i]) return 1;
        if(y[i]>x[i]) return 0;
    }
    if(n==m) return 1;
    if(k==m)
    {
        if(x[k+1]>y[0]) return 1;
        return 0;
    }

}
void ucitaj(int ne,int *n,int *s)
{
    int i=0;
    char c;

        while((c=getchar())!=' ')
        {
            if(!ne&&(c<'0'||c>'9')) break;
            s[i]=int(c)-48;
            i++;
        }
        *n=i;

}
void stampa(int n1,int n2,int n3,int *s1,int *s2,int *s3)
{
    int t1=0,t2=0,t3=0,j=0;
    for(int i=0;i<3;i++)
    {
        if((veciBroj(n1,n2,s1,s2))&&(veciBroj(n1,n3,s1,s3)))
        {
            if(!t1)
            {
                for(j=0;j<n1;j++) printf("%d",s1[j]);
                s1[0]=0;
                t1=1;
            }
        }
        if((veciBroj(n2,n1,s2,s1))&&(veciBroj(n2,n3,s2,s3)))
        {
            if(!t2)
            {
                for(j=0;j<n2;j++) printf("%d",s2[j]);
                s2[0]=0;
                t2=1;
            }
        }
        if((veciBroj(n3,n1,s3,s1))&&(veciBroj(n3,n2,s3,s2)))
        {
            if(!t3)
            {
                for(j=0;j<n3;j++) printf("%d",s3[j]);
                s3[0]=0;
                t3=1;
            }
        }
        if(t1&&t2&&t3) break;
    }
}
int main()
{
    int n1,n2,n3;
    int br=3;
    int i=0;
    //freopen("in.txt","r",stdin);
    int maxi=0;
    int *s1=(int*)calloc(19,sizeof(int));
    int *s2=(int*)calloc(19,sizeof(int));
    int *s3=(int*)calloc(19,sizeof(int));
    ucitaj(1,&n1,s1);
    ucitaj(1,&n2,s2);
    ucitaj(0,&n3,s3);
    stampa(n1,n2,n3,s1,s2,s3);
    return 0;
}