Professor GukiZ doesn't accept string as they are. He likes to swap some letters in string to obtain a new one.

GukiZ has strings *a*, *b*, and *c*. He wants to obtain string *k* by swapping some letters in *a*, so that *k* should contain as many non-overlapping substrings equal either to *b* or *c* as possible. Substring of string *x* is a string formed by consecutive segment of characters from *x*. Two substrings of string *x* overlap if there is position *i* in string *x* occupied by both of them.

GukiZ was disappointed because none of his students managed to solve the problem. Can you help them and find one of possible strings *k*?
The first line contains string *a*, the second line contains string *b*, and the third line contains string *c* (1 ≤ |*a*|, |*b*|, |*c*| ≤ 10<sup class="upper-index">5</sup>, where |*s*| denotes the length of string *s*).

All three strings consist only of lowercase English letters. 

It is possible that *b* and *c* coincide.
a=input()
b=input()
c=input()

k=a
lena = len(a)
lenb = len(b)
lenc = len(c)
flag =0

k1 = a
k2 = a

l=lena
while(l>=lenb):
    i=0
    while i<lenb:

        x = k1.find(b[i],0,l-i)

        if x>=0:

            k1 = k1[:x]+k1[x+1:]+b[i]
        else:
            flag = 1
            break
        i = i+1

    if(flag==1):
        k1=k1[lena-i:]+k1[:lena-i]
        break
    l=l-lenb


flag = 0
while(l>=lenc):
    i=0
    while i<lenc:
        x= k1.find(c[i],0,l-i)
        if x>=0:
            k1= k1[:x]+k1[x+1:]+c[i]
        else:
            flag = 1
            break
        i= i+1

    if flag == 1:
        k1=k1[lena-i:]+k1[:lena-i]
        break
    l = l-lenc

flag =0
l=lena
while(l>=lenc):
    i=0
    while i<lenc:

        x = k2.find(c[i],0,l-i)

        if x>=0:

            k2 = k2[:x]+k2[x+1:]+c[i]
        else:
            flag = 1
            break
        i = i+1

    if(flag==1):
        k2=k2[lena-i:]+k2[:lena-i]
        break
    l=l-lenc


flag = 0
while(l>=lenb):
    i=0
    while i<lenb:
        x= k2.find(b[i],0,l-i)
        if x>=0:
            k2= k2[:x]+k2[x+1:]+b[i]
        else:
            flag = 1
            break
        i= i+1

    if flag == 1:
        k2=k2[lena-i:]+k2[:lena-i]
        break
    l = l-lenb


count1 = 0
count2 = 0
i=0
while i<=lena:
    if k1.find(b,i)>=0:
        count1= count1+1
        i = i+lenb
    elif k1.find(c,i)>=0:
        count1 = count1+1
        i=i+lenc
    else:
        break
i=0
while i<=lena:
    if k2.find(b,i)>=0:
        count2 = count2+1
        i= i+lenb
    elif k2.find(c,i)>=0:
        count2 = count2+1
        i = i+lenc
    else:
        break

if count1>=count2:
    print(k1)
else:
    print(k2)

    
