#include <list>
#include <vector>
#include <iostream>
#include <limits.h>
using namespace std;
int main() {
vector<int> primes = { 2, 3, 5, 7, 11, 17, 23 };
int num = 100005917;
int bestCandidate = INT_MAX;
list<pair<int, int> > ls;
ls.push_back(make_pair(1, 0));
while (ls.size()) {
long long currentProd = ls.front().first;
int primesUsed = ls.front().second;
ls.pop_front();
int currentPrime = primes[primesUsed];
while (currentProd < num) {
if(primesUsed < primes.size() - 1)
ls.push_back(make_pair(currentProd, primesUsed + 1));
currentProd *= currentPrime;
}
bestCandidate = min((long long)bestCandidate, currentProd);
}
cout << bestCandidate;
}
I2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGxpbWl0cy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBtYWluKCkgewoJdmVjdG9yPGludD4gcHJpbWVzID0geyAyLCAzLCA1LCA3LCAxMSwgMTcsIDIzIH07CglpbnQgbnVtID0gMTAwMDA1OTE3OwoJaW50IGJlc3RDYW5kaWRhdGUgPSBJTlRfTUFYOwoJbGlzdDxwYWlyPGludCwgaW50PiA+IGxzOwoJbHMucHVzaF9iYWNrKG1ha2VfcGFpcigxLCAwKSk7IAoJd2hpbGUgKGxzLnNpemUoKSkgewoJCWxvbmcgbG9uZyBjdXJyZW50UHJvZCA9IGxzLmZyb250KCkuZmlyc3Q7CgkJaW50IHByaW1lc1VzZWQgPSBscy5mcm9udCgpLnNlY29uZDsKCQlscy5wb3BfZnJvbnQoKTsKCQlpbnQgY3VycmVudFByaW1lID0gcHJpbWVzW3ByaW1lc1VzZWRdOwoJCXdoaWxlIChjdXJyZW50UHJvZCA8IG51bSkgewoJCQlpZihwcmltZXNVc2VkIDwgcHJpbWVzLnNpemUoKSAtIDEpCgkJCQlscy5wdXNoX2JhY2sobWFrZV9wYWlyKGN1cnJlbnRQcm9kLCBwcmltZXNVc2VkICsgMSkpOwoJCQljdXJyZW50UHJvZCAqPSBjdXJyZW50UHJpbWU7CgkJfQoJCWJlc3RDYW5kaWRhdGUgPSBtaW4oKGxvbmcgbG9uZyliZXN0Q2FuZGlkYXRlLCBjdXJyZW50UHJvZCk7Cgl9Cgljb3V0IDw8IGJlc3RDYW5kaWRhdGU7Cn0=