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.
__author__ = 'myduomilia'

c, a, b = input(), input(), input()
arr = [0 for i in range(26)]
for ch in c:
    arr[ord(ch) - ord("a")] += 1

ans1, ans2 = 0, 0
ans1_s, ans2_s = [], []

t = arr[:]
while True:
    bool = True
    for ch in a:
        if t[ord(ch) - ord("a")] > 0:
            t[ord(ch) - ord("a")] -= 1
        else:
            bool = False
    if not bool:
        break
    else:
        ans1 += 1
        ans1_s.append(a)

while True:
    bool = True
    for ch in b:
        if t[ord(ch) - ord("a")] > 0:
            t[ord(ch) - ord("a")] -= 1
        else:
            bool = False
    if not bool:
        break
    else:
        ans1 += 1
        ans1_s.append(b)

for i in range(26):
    if t[i] > 0:
        ans1_s.append(chr(i + ord("a")) * t[i])

t = arr[:]
while True:
    bool = True
    for ch in b:
        if t[ord(ch) - ord("a")] > 0:
            t[ord(ch) - ord("a")] -= 1
        else:
            bool = False
    if not bool:
        break
    else:
        ans2 += 1
        ans2_s.append(a)

while True:
    bool = True
    for ch in a:
        if t[ord(ch) - ord("a")] > 0:
            t[ord(ch) - ord("a")] -= 1
        else:
            bool = False
    if not bool:
        break
    else:
        ans2 += 1
        ans2_s.append(b)
for i in range(26):
    if t[i] > 0:
        ans1_s.append(chr(i + ord("a")) * t[i])
if ans1 >= ans2:
    print("".join(ans1_s))
else:
    print("".join(ans2_s))
