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 numpy as np
primary = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
input_primary = []
fainal = []


def find_input_primary(input_num):
    i = 0
    while i < len(primary):
        if input_num == 1:
            break
        elif (input_num % primary[i]) == 0:
            input_primary.append(primary[i])
            input_num = input_num / primary[i]

        elif (input_num % primary[i]) != 0:
            i += 1
    return input_num


def find_primary(input_num):
    primary_list = []
    i = 0
    while i < len(primary):
        if input_num == 1:
            break
        elif (input_num % primary[i]) == 0:
            primary_list.append(primary[i])
            input_num = input_num / primary[i]
        elif (input_num % primary[i]) != 0:
            i += 1

    return primary_list


def creat_num():
    prime_factorials = []
    i = len(input_primary)

    while i > 0:
        prime = input_primary[len(input_primary)-1]
        if prime == 2:
            break
        else:
            prime_factorials = primary[0:primary.index(prime)+1]
            sigma = (prime-1)/2
            no_twos = (sigma**2-sigma)/2
            # print(no_twos, prime)
            checker = list(np.ones((1, int(no_twos)), np.int8)
                           [0]*2)
            for item in prime_factorials:
                checker.append(item)
            checker.sort()
            # print(f"checker={checker}", f"input = {input_primary}")
            if all(num in checker for num in input_primary):
                for number in checker:
                    input_primary.remove(number)
                i -= len(checker)
                fainal.append(prime)
    for item in input_primary:
        fainal.append(item)


def factorial(num):
    if num != 1:
        num = num * factorial(num-1)
    else:
        num = num
    return num


digits = input()
number = input()

no_input = 1
for char in number:
    no_input *= factorial(int(char))
find_input_primary(no_input)
creat_num()
string_fainal = ''
for item in fainal:
    string_fainal += str(item)
print(string_fainal)
