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


public class Factorial {
	
	public static void main(String[] args) throws java.lang.Exception {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		TaskC solver = new TaskC();
		solver.solve(in, out);
		out.close();
	}
}

class TaskC {
	public final static int maxn = 205;
	public int[] a = new int[maxn];
	public int m = 0;
	
	public void solve(InputReader in, PrintWriter out) {
		int n = in.nextInt();
		String s = in.next();
		int i, k;
		char ch;
		
		for (i=0; i<n; ++i) {
			k = s.charAt(i) - '0';
			add(k);
		}
		
		Arrays.sort(a, 0, m);
		for (i=m-1; i>=0; --i)
			out.print(a[i]);
		out.println();
	}
	
	public void add(int x) {		
		if (x <= 1)
			return;
		
		if (x == 2) {
			a[m++] = 2;
		} else if (x == 3) {
			a[m++] = 3;
		} else if (x == 4) {
			a[m++] = 3;
			a[m++] = 2;
			a[m++] = 2;
		} else if (x == 5) {
			a[m++] = 5;
		} else if (x == 6) {
			a[m++] = 5;
			a[m++] = 3;
		} else if (x == 7) {
			a[m++] = 7;
		} else if (x == 8) {
			a[m++] = 7;
			a[m++] = 2;
			a[m++] = 2;
			a[m++] = 2;
		} else {
			a[m++] = 7;
			a[m++] = 2;
			a[m++] = 3;
			a[m++] = 3;
		}
	}
}

class InputReader {
	public BufferedReader reader;
	public StringTokenizer tokenizer;
	
	public InputReader(InputStream stream) {
		reader = new BufferedReader(new InputStreamReader(stream), 32768);
		tokenizer = null;
	}
	
	public String next() {
		while (tokenizer==null || !tokenizer.hasMoreTokens()) {
			try {
				tokenizer = new StringTokenizer(reader.readLine());
			} catch (IOException e) {
				throw new RuntimeException(e);
			}
		}
		return tokenizer.nextToken();
	}
	
	public int nextInt() {
		return Integer.parseInt(next());
	}
}
