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()
dct1 = dict()
dct2 = dict()
for el in b:
    dct1[el] = 0
    dct2[el] = 0
for el in c:
    dct1[el] = 0
    dct2[el] = 0
for el in a:
    if el not in dct1:
        dct1[el] = 0
        dct2[el] = 0
    dct1[el] += 1
    dct2[el] += 1

min_b1 = len(b)
for el in b:
    if dct1[el] // b.count(el) < min_b1:
        min_b1 = dct1[el] // b.count(el)
for el in b:
    dct1[el] -= min_b1

min_c1 = len(c)
for el in c:
    if dct1[el] // c.count(el) < min_c1:
        min_c1 = dct1[el] // c.count(el)
for el in c:
    dct1[el] -= min_c1

min_c2 = len(c)
for el in c:
    if dct2[el] // c.count(el) < min_c2:
        min_c2 = dct2[el] // c.count(el)
for el in c:
    dct2[el] -= min_c2

min_b2 = len(b)
for el in b:
    if dct2[el] // b.count(el) < min_b2:
        min_b2 = dct2[el] // b.count(el)
for el in b:
    dct2[el] -= min_b2

if min_b1 + min_c1 > min_b2 + min_c2:
    print(b * min_b1, end='')
    print(c * min_c1, end='')
    for k, v in dct1.items():
        print(v * k, end='')
else:
    print(b * min_b2, end='')
    print(c * min_c2, end='')
    for k, v in dct2.items():
        print(v * k, end='')