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.
sa = input()
sb = input()
sc = input()

def freq(s):
    d = {}
    for char in "abcdefghijklmnopqrstuvwxyz":
        d[char] = 0

    for char in s:
        d[char] += 1
    return d

da = freq(sa)
db = freq(sb)
dc = freq(sc)

def is_enough(d, num):
    for key in d:
        if da[key] < d[key] * num:
            return False
    return True

def highest(d, source):
    m = len(a)
    for i in d:
        if d[i] == 0:
            continue

        letterm = source[i]//d[i]
        if letterm < m:
            m = letterm
    return m

ma = (-1, -1)
i = 0
while is_enough(db, i+1):
    i = i+1
    tmp = da.copy()
    for a in tmp:
        tmp[a] -= db[a] * i

    add = highest(dc, tmp)
    if i + add > sum(ma):
        ma = (i, add)

l = [sb * ma[0]] + [sc * ma[1]]

tmp = da.copy()
for a in tmp:
    tmp[a] -= db[a] * ma[0] + dc[a] * ma[1]
    l.append(a * tmp[a])

print("".join(l))
