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.
from collections import Counter
from copy import deepcopy

def getMax(c1, c2):
    ret = 1 << 32
    for k in c2.keys():
        ret = min(ret, c1[k]//c2[k])
    return ret

a, b, c = input(), input(), input()
counterA, counterB, counterC = Counter(a), Counter(b), Counter(c)

cntB, cntC = 0, getMax(counterA, counterC)
counterAA = deepcopy(counterA)
cntBB = 0
while counterAA & counterB == counterB:
    cntBB += 1
    counterAA -= counterB
    cntCC = getMax(counterAA, counterC)
    if cntB + cntC < cntBB + cntCC:
        cntB, cntC = cntBB, cntCC

ans = b * cntB + c * cntC
ans += ''.join((counterA - Counter(ans)).elements())
print(ans)
