# 2以上10**5以下の数は素数か、そうでなければその範囲の数の倍数 # つまり10**5超の素数をリストアウトして、それらの積か2乗の小さい順 n = 10**5 + 300 is_prime = [1]*(n + 1) is_prime[0] = 0 is_prime[1] = 0 for p in range(2, n + 1): if is_prime[p]: for q in range(2*p, n + 1, p): is_prime[q] = 0 #print(is_prime) primes = [] for i in range(10**5+1, 10**5+1+300): if is_prime[i] == 1: primes.append(i) #print(primes) good_nums = [1] for p1 in primes: for p2 in primes: good_nums.append(p1*p2) good_nums.sort() #print(good_nums) N = int(input()) ans = good_nums[N-1] print(ans)