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>

int checkPrime(int a){
    if(a%2==0 )
        return 0;
    for(int i=3;i<=sqrt(a);i+=2){
        if(!(a%i)){
            return 0;
        }
    }
    return 1;
}

auto primeFactors(int n){
    std::vector <int> arr;
    if(n==1)
        return arr;
    if(checkPrime(n)){
        arr.push_back(n);
        return arr;
    }
    while(n%2==0){
        arr.push_back(2);
        n=n/2;
    }
    for(int i=3 ;i<=sqrt(n) ; i=i+2){

        while(n%i==0){
            arr.push_back(i);
            n=n/i;
        }

    }
    if(n!=0 && n!=1){
        arr.push_back(n);
    }
    return arr;
}

int Factorial(int n){
    int fac=1;
    for(int i=n;i>0;i--)
        fac*=i;
    return fac;
}


int main() {
    int n,m,fx=1,fa=1;
    std::vector<int> arr,finalArr;
    std::cin>>n;
    std::cin>>m;
    do{
        n=m%10;
        fx*= Factorial(n);
    }while(m/=10);
    arr= primeFactors(fx);
    std::sort(arr.begin(),arr.end(),std::greater<int>());
    for(int j:arr){
        finalArr.push_back(j);
        fa*= Factorial(j);
        if(fx==fa)
            break;

    }
    for(auto j: finalArr)
        std::cout<<j;


    return 0;
}
