Drazil is playing a math game with Varda.

Let's define <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/7020b94c48be2ee5b8eeca05f379c8911bb0e7c4.png" style="max-width: 100.0%;max-height: 100.0%;"/> for positive integer *x* as a product of factorials of its digits. For example, <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/6784d861d9a724d0aeddefcb00b7d0c3442ae586.png" style="max-width: 100.0%;max-height: 100.0%;"/>.

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. <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/7020b94c48be2ee5b8eeca05f379c8911bb0e7c4.png" style="max-width: 100.0%;max-height: 100.0%;"/> = <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/aa57e017a6c74d06b0a54bc47e3f6990e5af38c1.png" style="max-width: 100.0%;max-height: 100.0%;"/>.

Help friends find such number.
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.
#include <bits/stdc++.h>

#define mp make_pair
#define fs first
#define sc second
#define pb push_back

#define y0 yy0
#define y1 yy1
#define next _next
#define prev _prev
#define link _link
#define hash _hash

#define sz(s) int((s).size())
#define len(s) int((s).size())
#define all(s) (s).begin(), (s).end()

typedef long long ll;
typedef long double ld;

const ll INF = 1e9;
const ll lINF = 1e18;
const double EPS = 1e-12;

using namespace std;

int cnt7, cnt5, cnt3, cnt2;

int get_pow(int n, int p) {
    if (n == 0) {
        return 0;
    }
    int ans = n / p;
    return ans + get_pow(n/p, p);
}
int main() {
#ifdef DEBUG
    freopen ("in.txt", "r", stdin);
#endif
    int n;
    cin >> n;
    string s;
    cin >> s;
    vector<int> v;
    for (int i = 0; i < n; i++) {
        v.pb(s[i] - '0');
    }
    for (int i = 0; i < n; i++) if (v[i] > 1) {
        cnt7+=get_pow(v[i], 7);
        cnt5+=get_pow(v[i], 5);
        cnt3+=get_pow(v[i], 3);
        cnt2+=get_pow(v[i], 2);
    }
    vector<int> ans;
    while (cnt7) {
        ans.pb(7);
        cnt7--;
        cnt5--;
        cnt3-=2;
        cnt2-=4;
    }
    while (cnt5) {
        ans.pb(5);
        cnt5--;
        cnt3-=1;
        cnt2-=3;
    }
    while (cnt3) {
        ans.pb(3);
        cnt3-=1;
        cnt2-=1;
    }
    while (cnt2) {
        ans.pb(2);
        cnt2-=1;
    }
    for (int i = 0; i < ans.size(); i++) {
        cout << ans[i];
    }
    return 0;
}
