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.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

public class CF515C {
    public static void main(String[] args) {
        FastReader input = new FastReader();
        PrintWriter pw = new PrintWriter(System.out);

//        long[] fact = new long[10];
//        fact[0] = 1;
//        fact[1] = 1;
//        for(int i = 2;i <= 9;i++){
//            fact[i] = i * fact[i-1];
//        }
//
//
//
//        for(int i = 2;i <= 9;i++){
//            long f1 = fact[i];
//
//            long max = -1;
//            for(int j = 1;j <= 1000000;j++){
//                int val = j;
//                long f2 = 1;
//                boolean con = true;
//                while (val > 0){
//                    int d = val % 10;
//                    if(d == 0 || d == 1)
//                        con = false;
//                    f2 *= fact[val%10];
//                    val /= 10;
//                }
//                if(f1 == f2 && con){
//                    max = Math.max(max,j);
//                }
//            }
//            pw.println("digit max " + i + " " + max);
//        }


        int n = input.nextInt();
        String s = input.nextLine();

        ArrayList<Integer> list = new ArrayList<>();

        for(int i = 0;i < s.length();i++){
            if(s.charAt(i) == '2')
                list.add(2);
            else if(s.charAt(i) == '3')
                list.add(3);
            else if(s.charAt(i) == '4'){
                list.add(3);
                list.add(2);
                list.add(2);
            }
            else if(s.charAt(i) == '5')
                list.add(5);
            else if(s.charAt(i) == '6'){
                list.add(5);
                list.add(3);
            }
            else if(s.charAt(i) == '7')
                list.add(7);
            else if(s.charAt(i) == '8'){
                list.add(7);
                list.add(2);
                list.add(2);
                list.add(2);
            }
            else if(s.charAt(i) == '9'){
                list.add(7);
                list.add(3);
                list.add(3);
                list.add(2);
            }
        }

        Collections.sort(list);
        Collections.reverse(list);
        for(int i : list){
            pw.print(i);
        }
        pw.println();



        pw.flush();
        pw.close();
    }
    static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;

        public FastReader()
        {
            br = new BufferedReader(new
                    InputStreamReader(System.in));
        }

        String next()
        {
            while (st == null || !st.hasMoreElements())
            {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt()
        {
            return Integer.parseInt(next());
        }

        long nextLong()
        {
            return Long.parseLong(next());
        }

        double nextDouble()
        {
            return Double.parseDouble(next());
        }

        String nextLine()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        }
    }
}
