digit_num = int(input())
#找出所有的素数
#下标i的元素值为0,则表明i不是素数,否则是素数
n_list = [1 for x in range(10**digit_num)]
n_list[0] = 0 #0表示不是素数,1表示是素数
n_list[1] = 0
len_n_list = len(n_list)
for i in range(2, len_n_list // 2 + 1):
if n_list[i] == 1:
for j in range(2, (len_n_list - 1) // i + 1):
n_list[i * j] = 0
#用字典来保存素数
prime_dict = {}
for i in range(2, len_n_list):
if n_list[i] == 1:
prime_dict[i] = 1
def prefix_is_prime(p, prime_dict):
prefix = p // 10
while prefix > 0:
if (prefix not in prime_dict) or prime_dict[prefix] == 0:
#用prime_list存储素数序列,接着用not in来判断是否是素数会超时。
return False
prefix = prefix // 10
return True
r_list = []
min_n_digits = 10 ** (digit_num - 1)
for p in prime_dict.keys():
if p > min_n_digits and prefix_is_prime(p, prime_dict):
r_list.append(p)
r_list.sort()
for p in r_list:
print(p)