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, b, c = input(), input(), input()
A, B, C = [0 for i in range(26)], [0 for i in range(26)], [0 for i in range(26)]
for i in range(0, len(a)):
    A[ord(a[i])-97] += 1
for i in range(0, len(b)):
    B[ord(b[i])-97] += 1
for i in range(0, len(c)):
    C[ord(c[i])-97] += 1
kbm, kcm = 1000000000000000, 1000000000000000
for i in range(0, 26):
    if kcm == 0:
        break
    if B[i] < 1:
        continue    
    if A[i]//B[i] < kbm:
        kbm = A[i]//B[i]

for i in range(0, 26):
    if kcm == 0:
        break
    if C[i] < 1:
        continue     
    if A[i]//C[i] < kcm:
        kcm = A[i]//C[i]

if kbm > kcm:
    print(b*kbm,end="")
    for i in range(0, 26):
        A[i] -= kbm*B[i]
    for i in range(0, 26):
        if kcm == 0:
            break
        if C[i] < 1:
            continue       
        if A[i]//C[i] < kcm:
            kcm = A[i]//C[i]
    print(c*kcm,end="")
    for i in range(0, 26):
        A[i] -= kcm*C[i]    
    for i in range(0, 26):
        print(chr(i+97)*A[i],end="")    
else:
    print(c*kcm,end="")
    for i in range(0, 26):
        A[i] -= kcm*C[i]
    for i in range(0, 26):
        if kcm == 0:
            break
        if C[i] < 1:
            continue         
        if A[i]//B[i] < kbm:
            kbm = A[i]//B[i]

    print(b*kbm,end="")
    for i in range(0, 26):
            A[i] -= kbm*B[i]    
    for i in range(0, 26):
        print(chr(i+97)*A[i],end="")