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

res = []

def fh(s):
    h = {}
    for i in s:
        if i in h.keys():
            h[i] += 1
        else:
            h[i] = 1
    return h

h1 = fh(a)
h2 = fh(b)
h3 = fh(c)

count = {}
q = 0
for i in h2.items():
    if i[0] in h1.keys():
        tmp = h1[i[0]]//i[1]
        if tmp:
            count[i[0]] = tmp
            if not q or q < tmp:
                q = tmp
        else:
            q = 0
            break

if q:
    res.append(list(b)*q)
    for i in h2.items():
        h1[i[0]] -= i[1]*q

count = {}
q = 0
for i in h3.items():
    if i[0] in h1.keys():
        tmp = h1[i[0]]//i[1]
        if tmp:
            count[i[0]] = tmp
            if not q or q < tmp:
                q = tmp
        else:
            q = 0
            break

if q:
    res.append(list(b)*q)
    for i in h3.items():
        h1[i[0]] -= i[1]*q

if not res:
    res = a
else:
    for i in res:
        print(''.join(i), end='')