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 = list(input())
b = input()
c = input()

for i in range(len(a)):
    for j in range (len(a)):
        if a[i] < a[j]:
            a[i],a[j] = a[j],a[i]
y = ''
z = ''
for i in range(0,len(a)):
    for j in range (0,len(b)):
        if b[j] in a:
            y += b[j]
    if y == b:
        z += y
        for j in range(0,len(y)):
            a.remove(y[j])
        y = ''
    else:
        break
y = ''
for i in range(0,len(a)):
    for j in range (0,len(c)):
        if c[j] in a:
            y += c[j]
    if y == c:
        z += y
        for j in range(0,len(y)):
            a.remove(y[j])
        y = ''
    else:
        break


for i in range(len(a)):
    z += a[i]

print(z)