from itertools import islice
from fileinput import input
def gen_primes(): # http://stackoverflow.com/a/2212007/849891
D = {}
q = 2 # first integer to test for primality.
while True:
if q not in D:
# not marked composite, must be prime
yield q
#first multiple of q not already marked
D[q * q] = [q]
else:
for p in D[q]:
D.setdefault(p + q, []).append(p)
# no longer need D[q], free memory
del D[q]
q += 1
for line in input(): # 400k:11.63s-31.2MB 200k:5.11-18.0 n^1.19
n = int(line) # 1m, projected: 35s 100k:2.23-12.8 n^1.20
print( list( islice( (p for p in gen_primes() ), n-1, n+1)))
break
ZnJvbSBpdGVydG9vbHMgaW1wb3J0IGlzbGljZQpmcm9tIGZpbGVpbnB1dCBpbXBvcnQgaW5wdXQKCmRlZiBnZW5fcHJpbWVzKCk6ICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIyMTIwMDcvODQ5ODkxCiAgRCA9IHt9CiAgcSA9IDIgICMgZmlyc3QgaW50ZWdlciB0byB0ZXN0IGZvciBwcmltYWxpdHkuCgogIHdoaWxlIFRydWU6CiAgICBpZiBxIG5vdCBpbiBEOgogICAgICAjIG5vdCBtYXJrZWQgY29tcG9zaXRlLCBtdXN0IGJlIHByaW1lICAKICAgICAgeWllbGQgcSAKCiAgICAgICNmaXJzdCBtdWx0aXBsZSBvZiBxIG5vdCBhbHJlYWR5IG1hcmtlZAogICAgICBEW3EgKiBxXSA9IFtxXSAKICAgIGVsc2U6CiAgICAgIGZvciBwIGluIERbcV06CiAgICAgICAgRC5zZXRkZWZhdWx0KHAgKyBxLCBbXSkuYXBwZW5kKHApCiAgICAgICMgbm8gbG9uZ2VyIG5lZWQgRFtxXSwgZnJlZSBtZW1vcnkKICAgICAgZGVsIERbcV0KCiAgICBxICs9IDEKICAgIApmb3IgbGluZSBpbiBpbnB1dCgpOiAgIyA0MDBrOjExLjYzcy0zMS4yTUIgIDIwMGs6NS4xMS0xOC4wICBuXjEuMTkKICAgIG4gPSBpbnQobGluZSkgICAgICMgMW0sIHByb2plY3RlZDogMzVzICAxMDBrOjIuMjMtMTIuOCAgbl4xLjIwCiAgICBwcmludCggbGlzdCggaXNsaWNlKCAocCBmb3IgcCBpbiBnZW5fcHJpbWVzKCkgKSwgbi0xLCBuKzEpKSkgICAKICAgIGJyZWFr