#include <stdio.h>

#define N 30

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

void genprim(void) {
	for (int i = 1, j = 3; i < N; ++i, j += 2) {
		if (j == m[k] * m[k]) {
			m[k++] = j;
			goto np;
		}
	
		for (int i = 1, mi = m[i], pi2 = p[i] * 2; i < k; ++i) {
			while (mi < j)
		    	mi += pi2;
			if (j == (m[i] = mi))
				goto np;
		}
		
		p[i] = j;
np:;
    }
}

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