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.
INF = 999999999999999999999999999999999999999

a = input()
b = input()
c = input()

a_letters = [0] * 26
b_letters = [0] * 26
c_letters = [0] * 26

for code in range(ord('a'), ord('z') + 1):
    letter = chr(code)
    a_letters[code - ord('a')] = a.count(letter)
    b_letters[code - ord('a')] = b.count(letter)
    c_letters[code - ord('a')] = c.count(letter)

while True:
    b_count = [0] * 26
    for i in range(26):
        if b_letters[i] > 0:
            b_count[i] = a_letters[i] // b_letters[i]
        else:
            b_count[i] = INF

    c_count = [0] * 26
    for i in range(26):
        if c_letters[i] > 0:
            c_count[i] = a_letters[i] // c_letters[i]
        else:
            c_count[i] = INF

    b_min = min(b_count)
    c_min = min(c_count)

    if b_min == 0 and c_min == 0:
        break

    if b_min > c_min:
        print(b, end='')
        for i in range(26):
            a_letters[i] -= b_letters[i]
    else:
        print(c, end='')
        for i in range(26):
            a_letters[i] -= c_letters[i]

for i in range(26):
    print(chr(ord('a') + i) * a_letters[i], end='')
print()
