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


def can(c, s):
    cc = Counter(s)
    return (c & cc) == cc


if __name__ == '__main__':
    k = input()
    s1 = input()
    s2 = input()

    if len(s2) < len(s1):
        s1, s2 = s2, s1

    c = Counter(k)
    c1 = Counter(s1)
    c2 = Counter(s2)

    t1 = 0
    while can(c, c1):
        c -= c1
        t1 += 1

    t2 = 0
    while can(c, c2):
        c -= c2
        t2 += 1

    s = t1 * s1 + t2 * s2

    for k in c.keys():
        s += k * c[k]

    print(s)