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 java.io.*;
import java.lang.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.regex.*;


public class Solution {
    public static void main(String[] args) throws IOException
    {
     
      Scanner vicky=new Scanner(System.in);
      int n=vicky.nextInt();
      String s=vicky.next();
      s=s.replaceAll("1","");
      s=s.replace("0","");
      String s1="";
      for(int i=0;i<s.length();i++)
      {
          char ch=s.charAt(i);
          if(ch=='2' ||ch=='3' ||ch=='5' ||ch=='7' )
              s1+=ch;
          else if (ch=='4')
              s1+="322";
          else if(ch=='6')
              s1+="53";
          else if(ch=='8')
              s1+="7222";
          else if(ch=='9')
              s1+="7332";
      }
      char []c=s1.toCharArray();
      Arrays.sort(c);
      System.out.println((new StringBuilder(String.valueOf(c))).reverse());
      
    }
    static int gcd(int n,int m)
    {
        if(m==0)return n;
        else return gcd(m,n%m);
    }
}
