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 defaultdict
s = input()
a = input()
b = input()
n = len(s)
n1 = len(a)
n2 = len(b)
x = ""
d = defaultdict(lambda:0)
for i in s:
    if i in d :
        d[i]+=1
    else:
        d[i]=1
p = []
for i in b:
    p.append(d[i])
t = min(p)
q = []
for i in a:
    if i in set(b)  and d[i]-t >=0:
        q.append(d[i]-t)
print(p,q)

c = min(q)
x = a*c + b*t
z = ""
if t==0 and c==0:
    print("".join(sorted(s)))
elif t==0:
    for i in set(s):
        if i not in (set(a)) :
            z+=i*d[i]  
    print(x+"".join(sorted(z)))
elif c==0:
    for i in set(s):
        if i not in (set(b)) :
            z+=i*d[i]  
    print(x+"".join(sorted(z)))
else:
    for i in set(s):
        if i not in (set(b)) and i not in set(a) :
            z+=i*d[i]  
    
    print(x+"".join(sorted(z)))
