Problem: Print a sequence a_1, a_2, ..., a_N whose length is N that satisfies the following conditions:

* a_i (1 \leq i \leq N) is a prime number at most 55 555.
* The values of a_1, a_2, ..., a_N are all different.
* In every choice of five different integers from a_1, a_2, ..., a_N, the sum of those integers is a composite number.



If there are multiple such sequences, printing any of them is accepted.

Constraints

* N is an integer between 5 and 55 (inclusive).

Input

Input is given from Standard Input in the following format:


N


Output

Print N numbers a_1, a_2, a_3, ..., a_N in a line, with spaces in between.

Examples

Input

5


Output

3 5 7 11 31


Input

6


Output

2 3 5 7 11 13


Input

8


Output

2 5 7 13 19 37 67 79

Solution (in JAVA):

Solution:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.IntStream;

/**
 * 解説どおりに作成したソースコード
 */
public class Main {

	/** 最大数 */
	static final int MAX = 55555;

	/** 合計を計算する数字の数 */
	static final int N = 5;

	public static void main(String[] args) {
		try (Scanner scanner = new Scanner(System.in)) {
			int n = scanner.nextInt();
			// MAXまでのすべての素数を計算
			boolean[] isPrime = new boolean[MAX + 1];
			Arrays.fill(isPrime, true);
			isPrime[0] = isPrime[1] = false;
			for (int i = 2; i <= MAX; i++) {
				if (isPrime[i]) {
					for (int j = i * 2; j <= MAX; j += i) {
						isPrime[j] = false;
					}
				}
			}
			@SuppressWarnings("unchecked")
			List<Integer>[] lists = new List[N];
			IntStream.range(0, N).forEach(i -> lists[i] = new ArrayList<>());
			IntStream.range(2, MAX).filter(i -> isPrime[i]).forEach(i -> lists[i % N].add(i));
			int index = IntStream.range(1, N).filter(i -> lists[i].size() >= n).findFirst().getAsInt();
			IntStream.range(0, n).forEach(i -> System.out.println(lists[index].get(i)));
		}
	}
}