#include <cstdio>
bool vis[100005];
int prime[100005], tot;
void init(int n) {
int i, j;
for(i = 2; i*i <= n; i++) if(!vis[i])
for(j = i*i; j <= n; j += i)
vis[j] = 1;
for(i = 2; i <= n; i++)
if(!vis[i]) prime[tot++] = i;
for(i = 0; i < 10; i++)
printf("%d ", prime[i]);
}
int fun(int n) {
int i, j;
for(i = 0; i < tot && p[i]*p[i] <= n; i++) {
int c = 0;
while(n%p[i]==0) n/= p[i], c++;
}
}
bool vis[11111];
int ans[11111];
int f(int x) {
if(x == 0) return 1;
int t;
if(vis[x]) return ans[x];
else {
t = f(x-1)*x;
ans[x] = t;
vis[x] = 1;
}
}
int a[1111];
int dp[33];
int dfs(int len, int lim) {
if(!len) return 1;
int m = lim ? a[len] : 9;
if(!lim && dp[len] != -1) return dp[len];
int ret = 0;
for(int i = 0; i <= m; i++) if(i != 6 && i != 2){
ret += dfs(len-1, lim && i==m);
if(!lim)
dp[len] = ret;
return ret;
}
void gao(int x) {
int len = 0;
while(x > 0) {
a[++len] = x%10;
x /= 10;
}
}
int main() {
memset(dp, -1, sizeof(dp));
init(10000);
return 0;
}