Drazil is playing a math game with Varda.

Let's define <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/7020b94c48be2ee5b8eeca05f379c8911bb0e7c4.png" style="max-width: 100.0%;max-height: 100.0%;"/> for positive integer *x* as a product of factorials of its digits. For example, <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/6784d861d9a724d0aeddefcb00b7d0c3442ae586.png" style="max-width: 100.0%;max-height: 100.0%;"/>.

First, they choose a decimal number *a* consisting of *n* digits that contains at least one digit larger than 1. This number may possibly start with leading zeroes. Then they should find maximum positive number *x* satisfying following two conditions:

1. *x* doesn't contain neither digit 0 nor digit 1.

2. <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/7020b94c48be2ee5b8eeca05f379c8911bb0e7c4.png" style="max-width: 100.0%;max-height: 100.0%;"/> = <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/aa57e017a6c74d06b0a54bc47e3f6990e5af38c1.png" style="max-width: 100.0%;max-height: 100.0%;"/>.

Help friends find such number.
The first line contains an integer *n* (1 ≤ *n* ≤ 15) — the number of digits in *a*.

The second line contains *n* digits of *a*. There is at least one digit in *a* that is larger than 1. Number *a* may possibly contain leading zeroes.
def fact(n):
    if n==0:
        return 1
    else: 
        f=1
        for i in range(1,int(n+1)):
            f=f*i
    return f

fc_ls=[]
for i in range (2,10):
    fc_ls.append(fact(i))

n=int(input())
a=int(input())
aa=a
mul=1
ls=[]
for i in range(n):
    p=a%10
    a=a/10
    ls.append(int(p))
    mul=mul*fact(p)
#print(ls)    
#print(mul)
if mul & mul-1==0:
    import math
    p=""    
    for i in range(int(math.log(mul,2))):
       p=p+'2' 
    print(p)               
    raise SystemExit
    
    


ans_ls=[]
i=0
while i<8:
    if mul % fc_ls[i]==0:
        mul = int(mul / fc_ls[i])
        ans_ls.append(fc_ls[i])
    else:
        i=i+1
#rint('mul',mul)
#print(ans_ls)

p=0
while True:
    
    mul = mul * ans_ls[-1]
    
    del ans_ls[-1]
    if len(ans_ls)==0:
        ls.sort(reverse=True)
        p=""
        for i in range(len(ls)):
            p=p+str(ls[i])
        print(p)
        raise SystemExit
    #print(mul)
    #print(ans_ls)
    for i in range(0,8):
       
        if mul % fc_ls[i]==0 and int(mul/fc_ls[i]) in fc_ls:
            ans_ls.append(fc_ls[i])
            ans_ls.append(int(mul/fc_ls[i]))
            p=-1
            #print(fc_ls[i],mul/fc_ls[i])
            break
    if p==-1:
        break
ans_ls.sort(reverse=True)
p=""
for i in range(len(ans_ls)):
    p=p+str(fc_ls.index(ans_ls[i])+2)
    
print(p)    
