/* MIDI Olympiad in Informatics 2007
 * Divisors reference solution
 * by Daumilas Ardickas
 */

#include <vector>
#include <algorithm>
#include <iostream>
#define pb push_back
#define sz size()
using namespace std;
typedef vector<int> vi;

long long n;
vi sk;

const int p[20]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71};

void skaiciuoti(int l){
    if (l==1){
        int i, j;
        double fn=1;
        for (i=0; i<sk.sz; ++i) 
            for (j=1; j<sk[i]; ++j) fn*=p[i];
        if (fn<2E18){
            long long in=1;
            for (i=0; i<sk.sz; ++i)
                for (j=1; j<sk[i]; ++j) in*=(long long)p[i];
            if (in<=1000000000000000000LL&&(n==-1||n>in))
                n=in;
        }
    } else {
        int d=1;
        while (d*d<l){
            if (!(l%d)){
                if (d>1&&(sk.sz==0||d<=sk[sk.sz-1])) {
                    sk.pb(d);
                    skaiciuoti(l/d);
                    sk.pop_back();
                }
                if (l/d>1&&(sk.sz==0||l/d<=sk[sk.sz-1])) {
                    sk.pb(l/d);
                    skaiciuoti(d);
                    sk.pop_back();
                }
            }
            ++d;
        }
        if (d*d==l&&d>1&&(sk.sz==0||d<=sk[sk.sz-1])){
            sk.pb(d);
            skaiciuoti(d);
            sk.pop_back();
        }
    }
}

int main(){
    freopen("divisors.in", "r", stdin);
    freopen("divisors.out", "w", stdout);
    int d;
    scanf("%i", &d);
    n=-1;
    skaiciuoti(d);
    cout << n << endl;
    return 0;
}

