#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int lint; #define rep(i, n) for (lint i = 0; i < n; i++) #define sort(v) sort((v).begin(), (v).end()) #define reverse(v) reverse((v).begin(), (v).end()) #define upper(v,hoge) upper_bound(v.begin(),v.end(),hoge) #define lower(v,hoge) lower_bound(v.begin(),v.end(),hoge) #define mp make_pair #define enld endl bool isprime(lint x) { //xが素数:true,xが素数でない:false if (x == 2) { return true; } else if (x == 1 || x % 2 == 0) { return false; } else { lint i = 3; while (i * i <= x) { if (x % i == 0) { return false; } i += 2; } return true; } } int main() { vectorA; A = { 100003,100019,100043,100049,100057,100069 }; vectorB; rep(i, 6) { rep(j, 6) { B.push_back(A[i] * A[j]); } } sort(B); lint N; cin >> N; if (N == 1) { cout << 1 << endl; } else { cout << B[N - 2] << endl; } } /* 100003 100019 100043 100049 100057 100069 */