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.
from math import *
from collections import *
from bisect import *
import heapq
import math

def is_prime(n):

    for i in range(2,math.ceil(math.sqrt(n))):
        if(n%i==0):
            return False
    return True

def sieve(n):
    arr=[True for _ in range(n+1)]

    for i in range(2,math.ceil(math.sqrt(n))):
        if(arr[i]==True):
            for j in range(i*i,n+1,i):
                arr[j]=False

    return arr


def power(x, y, p):
    res = 1  # Initialize result

    # Update x if it is more
    # than or equal to p
    x = x % p

    if (x == 0):
        return 0

    while (y > 0):

        # If y is odd, multiply
        # x with result
        if ((y & 1) == 1):
            res = (res * x) % p

        # y must be even now
        y = y >> 1  # y = y/2
        x = (x * x) % p

    return res

def euclidean_distance(x1,y1,x2,y2):
    return sqrt(abs(x1-x2)**2+abs(y1-y2)**2)


def solve():
    # s=input()
    n=int(input())
    num=int(input())
    copy=num
    mul=1
    fact=[0,1,2]
    ans=[]
    for i in range(3,10):
        fact.append(i*fact[-1])
    while(copy>0):
        x=copy%10
        if(x in [4,6,8,9]):
            if(x==4):
                ans+=[3 ,2 ,2]
            if(x==6):
                ans+=[5,3]
            if(x==8):
                ans+=[7,2,2,2]
            if(x==9):
                ans+=[7,3,3,2]
        else:
            if(x>1):
                ans.append(x)
        copy//=10



    res=""
    ans.sort(reverse=True)
    for ele in ans:
        res+=str(ele)
    print(res)


if __name__ == '__main__':
    n=1
    # n=int(input())
    while(n):
        n-=1
        solve()




