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 sys import stdin,stdout
# input = stdin.readline
a=input()
b=input()
c=input()

h1=[0]*26
for i in range(len(a)):
	h1[ord(a[i])-97]+=1

h2=[0]*26
for i in range(len(b)):
	h2[ord(b[i])-97]+=1

h3=[0]*26
for i in range(len(c)):
	h3[ord(c[i])-97]+=1
ans=""

def check(h1,h2):
	for i in range(26):
		if(h2[i]>h1[i] and h2[i]!=0):
			return False
	return True

# print(h1)
# print(h2)
# print(h3)
# print(check(h1,h2))
while(len(ans)<len(a)):
	# print(h1)
	if(len(b)<len(c)):
		# print("yes")
		if(check(h1,h2)):
			# print("yes")
			ans=ans+b
			for i in range(26):
				h1[i]-=h2[i]
		elif(check(h1,h3)):
			ans=ans+c
			for i in range(26):
				h1[i]-=h3[i]
		else:
			for i in range(26):
				ans=ans+h1[i]*chr(i+97)

	else:
		if(check(h1,h3)):
			ans=ans+c
			for i in range(26):
				h1[i]-=h3[i]
		elif(check(h1,h2)):
			ans=ans+b
			for i in range(26):
				h1[i]-=h2[i]
		else:
			for i in range(26):
				ans=ans+h1[i]*chr(i+97)
	# print(check(h1,h2))
	# print(ans)
print(ans)
