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.
def get_info(s):
    d = {}
    for c in 'abcdefghijklmnopqrstuvwxyz':
        d[c] = 0
    for c in s:
        d[c] += 1
    return d
    
def main():
    a = input()
    b = input()
    c = input()
    
    ainfo = get_info(a)
    binfo = get_info(b)
    cinfo = get_info(c)
    maxx = None
    for c in 'abcdefghijklmnopqrstuvwxyz':
        if binfo[c] == 0: continue
        tmaxx = int(ainfo[c] / binfo[c])
        if maxx==None or maxx>tmaxx:
            maxx = tmaxx
    maxy = None
    for c in 'abcdefghijklmnopqrstuvwxyz':
        if cinfo[c] == 0: continue
        tmaxy = int(ainfo[c] / cinfo[c])
        if maxy==None or maxy>tmaxy:
            maxy = tmaxy
    rec = None
    for x in range(maxx+1):
        yl = 0
        yr = maxy+1
        while yl+1<yr:
            ym = int((yl+yr)/2)
            succ = True
            for c in 'abcdefghijklmnopqrstuvwxyz':
                if x*binfo[c]+ym*cinfo[c]>=ainfo[c]:
                    succ = False
                    break
            if succ:
                yl = ym
            else:
                yr = ym
            pass
        if rec==None or yl+x>sum(rec):
            rec =(x,yl)
    #print(rec)
    ret = ""
    ret += rec[0]*b+rec[1]*c
    for c in 'abcdefghijklmnopqrstuvwxyz':
        remain = ainfo[c]-binfo[c]*rec[0]-cinfo[c]*rec[1]
        ret += c*remain
    print(ret)

if __name__ == '__main__':
    main()
    