#include <stdio.h>

#define N 30

int p[N] = {2}, m[N] = {2}, k = 1;

static int isprim(int x) {
	int mk = m[k];
	if (x == mk * mk) {
		m[k++] = x;
		return 0;
	}
	
	for (int i = 1; i < k; ++i) {
		int mi = m[i];
		while (mi < x)
		    mi += 2 * p[i];
		m[i] = mi;
		if (x == mi)
		    return 0;
	}
	
	return 1;
}

void genprim(void) {
	for (int i = 1, j = 3; i < N; ++i, j += 2)
	    if (isprim(j))
	        p[i] = j;
}

int main(void) {
	genprim();
	for (int i = 0; i < N; ++i) {
		printf("%d ", p[i]);
	}
	puts("\n");
	return 0;
}
