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 collections import defaultdict

def get_single(a, b):
	res = 1000000
	for s in a.keys():
		if b[s] > 0:
			res = min(res, b[s] // a[s])
	return res



def get_count(a, b, c):
	best = 0, get_single(a, c)
	r1 = 0
	while a & b == b:
		r1 += 1
		a = a - b
		r2 = get_single(a, c)
		if r1 + r1 > sum(best):
			best = r1, r2
	return best
	

a = input()
b = input()
c = input()
aa = Counter(a)
bb = Counter(b)
cc = Counter(c)

r = get_count(Counter(a), bb, cc)

res = b * r[0] + c * r[1]
rest = aa - Counter(res)
res += ''.join(list(rest.elements()))

print(res)
