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.
import math

length_of_number = int(input())
number           = input()
def controllar(length , number ):
    '''
        @length : the number length  0< length < 15
        @number : positve number in shap of string
        @return : a max positve number in shap of string doesnot contain 0 or 1
    '''
    def counter_data_f(number):
        '''
         @number : number in shap of string
         @return : [dic have how many each number is repeated in the factorial , max_num_in_the_number]
        '''
        data = dict()
        max_number  = 0
        for i in range(0 , len(number) , 1) :
            num = int(number[i])
            max_number = max(num , max_number)
            j   = 2
            while ( j <= num ):
                if not j in data.keys() :
                    data[j] = 1
                else :
                    data[j] += 1
                j += 1
        return [data , max_number];
    # This data indicates whether a number can be divided by a smaller number, and if so, which smaller number can divide it
    data = {
        9 : 'none' ,
        8 : 2    ,
        7 : 'none' ,
        6 : 2    ,
        5 : 'none' ,
        4 : 2    ,
        3 : 'none' ,
        2 : 'none' ,

    }
    counter_data_return = counter_data_f(number)
    counter_data = counter_data_return[0]
    max_number   = counter_data_return[1]
    minis        = 0
    main_number  = ''
    while (max_number > 1 ):
        counter_data[max_number] -= minis
        if data[max_number] != 'none' :
            counter_data[data[max_number]] += math.ceil((max_number * counter_data[max_number]) / data[max_number])
            counter_data[max_number] = 0
        else :
            minis += counter_data[max_number]
            main_number = main_number + f'{max_number}'*counter_data[max_number]
            counter_data[max_number] = 0
        max_number -= 1
    return int(main_number);
print(controllar(length_of_number , number))