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()
l1 = list(a)
l2 = list(b)
l3 = list(c)
s = s1 = s2 = str()
ms = ms1 = str()
p = q = 0
for i in range(len(l2)):
    s = a.find(l2[i])
    if s == -1:
        p = 1
        break
if p != 1:
    ms += b
    for e in range(len(l2)):
        s = a.find(l2[e])
        l1[s] = ''
for j in range(len(l3)):
    s = a.find(l3[j])
    if s == -1:
        q = 1
        break
if q != 1:
    ms += c
    for f in range(len(l3)):
        s = a.find(l3[f])
        l1[s] = ''
ms1 = ms + ''.join(l1)
print(ms1)
