Drazil is playing a math game with Varda.

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

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

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, <image>
import fileinput
import math

def init( d ):
  d[4] = [2,2]
  d[6] = [3]
  d[8] = [2,2,2]
  d[9] = [3,3,2,7]

# n = 6 -> 2*3 * 5!
def expand( n, d, rslt ):
  if n < 4:
    if not n == 1:
     rslt.append(n)
    return 
  for i in range(n,2,-1):
    if n == 9 and i == 8:
      return
    if i not in d.keys():
      rslt.append(i)
      return
    else:
      for j in d[i]:
        rslt.append(j)
## read input
lines = fileinput.input()
line1 = map( lambda x : int(x), lines[0].rstrip('\n').split(' ') )

numDigits = line1[0]

## initialize
expandTable = {}
init( expandTable )
digits = [ int(x) for x in lines[1].rstrip('\n' ) if int(x) > 1 ]
rslt = []
for digit in digits:
    expand( digit, expandTable, rslt )
rslt.sort()
rslt.reverse()
print reduce( lambda x,y: str(x) + str(y), rslt )
