import java.math.BigInteger;

public class Euler110 {
    static int[] primes = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53 };
    static BigInteger best = BigInteger.valueOf(Long.MAX_VALUE);

    static void dfs(int idx, int maxExp, BigInteger n, int divCount, int target) {
        if (divCount >= target) {
            if (n.compareTo(best) < 0)
                best = n;
            return;
        }
        if (idx >= primes.length)
            return;
        BigInteger val = n;
        for (int e = 1; e <= maxExp; e++) {
            val = val.multiply(BigInteger.valueOf(primes[idx]));
            if (val.compareTo(best) >= 0)
                break;
            dfs(idx + 1, e, val, divCount * (2 * e + 1), target);
        }
    }

    public static void main(String[] args) {
        dfs(0, 63, BigInteger.ONE, 1, 8000001);
        System.out.println(best);
    }
}
