human
What is a Python code to find maximum positive number x satisfying following two conditions: given the following:
Drazil is playing a math game with Varda.

Let's define  for positive integer x as a product of factorials of its digits. For example, .

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.  = .

Help friends find such number.

Input

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.

Output

Output a maximum possible integer satisfying the conditions above. There should be no zeroes and ones in this number decimal representation.

Examples

Input

4
1234

Output

33222

Input

3
555

Output

555

Note

In the first case, 
Using python3 can you solve the prior task?
assistant
#Here is Python code to find maximum positive number x satisfying following two conditions:
.

# import bisect
import os
import sys
from io import BytesIO, IOBase
from collections import Counter, defaultdict
from collections import deque
from functools import cmp_to_key
import math
# import heapq

def sin():
    return input()
def ain():
    return list(map(int, sin().split()))
def sain():
    return input().split()
def iin():
    return int(sin())
MAX = float('inf')
MIN = float('-inf')
MOD = 1000000007
def sieve(n): 
    prime = [True for i in range(n+1)]
    p = 2
    while (p * p <= n): 
        if (prime[p] == True): 
            for i in range(p * p, n+1, p): 
                prime[i] = False
        p += 1
    s = set()
    for p in range(2, n+1): 
        if prime[p]: 
            s.add(p)
    return s
def readTree(n, m):
    adj = [deque([]) for _ in range(n+1)]
    for _ in range(m):
        u,v = ain()
        adj[u].append(v)
        adj[v].append(u)
    return adj

def main():
    n = iin()
    a = iin()
    l = []
    ans = {"0":[],"1":[], "2":["2"], "3":["3"], "4":["2","2","3"], "5":["5"], "6":["3", "5"], "7":["7"], "8":["2","2","2","7"],"9":["7","3","3","2"]}
    for i in str(a):
        l += ans[i]
    l.sort(reverse=True)
    print("".join(l))
    # fact = list(range(1,10))
    # # print(fact)
    # for i in range(1,9):
    #     fact[i]*=fact[i-1]
    # fact = [1] + fact
    # ans = 1
    # for i in str(a):
    #     ans*=(fact[int(i)])
    # l = [2,3,4,5]
    # d = {2:0, 3:0, 4:0, 5:0}
    # cc = {2:[2], 3:[3], 4:[2,2], 5:[]}
    # while ans != 1:
    #     for i in l:
    #         if ans%i == 0:
    #             d.append(str(i))
    #             ans//=fact[i]
    #             break

        

    



 
        
    




















            
          



        

        

# Fast IO Template starts

BUFSIZE = 8192

class FastIO(IOBase):
    newlines = 0
    def __init__(self, file):
        self._fd = file.fileno()
        self.buffer = BytesIO()
        self.writable = "x" in file.mode or "r" not in file.mode
        self.write = self.buffer.write if...