#include <bits/stdc++.h>
using namespace std;
#define ll pair<long long, long long>
#define fi first
#define se second
const long long inf = 1e18;
const int maxn = 10 + 1e3;
const int maxs = 5e6 + 10;
const int ma = 5e6;
long long a[maxn], b[maxn], luu[maxn], n;
bool dd[maxs], f[maxs];
int cso[5] = { 1, 3, 5, 7, 9 };
void sangnt() {
for (int i = 2; i <= sqrt(ma); i++)
if (!dd[i])
for (int j = i * i; j <= ma; j += i) dd[j] = 1;
}
void sangnttd() {
long long d1 = 0, d2 = 0;
for (int i = 2; i <= 9; i++)
if (!dd[i])
d1++, d2++, a[d1] = i, b[d2] = i;
for (int t = 1; t <= 6; t++) {
long long d3 = 0;
for (int i = 1; i <= d1; i++)
for (int j = 0; j <= 4; j++) {
long long so = a[i] * 10 + cso[j];
if (so > ma)
continue;
if (!dd[so]) {
d3++;
luu[d3] = so;
}
}
for (int i = d2 + 1; i <= d2 + d3; i++) b[i] = luu[i - d2];
d2 += d3;
d1 = d3;
for (int i = 1; i <= d1; i++) a[i] = luu[i];
}
f[0] = 1;
for (int i = 1; i <= d2; i++)
for (int j = ma; j >= b[i]; j--)
if (f[j - b[i]] != 0)
f[j] = 1;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
// freopen(".INP","r",stdin);
// freopen(".OUT","w",stdout);
cin >> n;
sangnt();
sangnttd();
for (int i = 1; i <= n; i++)
if (f[i])
cout << i << " ";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgcGFpcjxsb25nIGxvbmcsIGxvbmcgbG9uZz4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZApjb25zdCBsb25nIGxvbmcgaW5mID0gMWUxODsKY29uc3QgaW50IG1heG4gPSAxMCArIDFlMzsKY29uc3QgaW50IG1heHMgPSA1ZTYgKyAxMDsKY29uc3QgaW50IG1hID0gNWU2Owpsb25nIGxvbmcgYVttYXhuXSwgYlttYXhuXSwgbHV1W21heG5dLCBuOwpib29sIGRkW21heHNdLCBmW21heHNdOwppbnQgY3NvWzVdID0geyAxLCAzLCA1LCA3LCA5IH07CnZvaWQgc2FuZ250KCkgewogICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gc3FydChtYSk7IGkrKykKICAgICAgICBpZiAoIWRkW2ldKQogICAgICAgICAgICBmb3IgKGludCBqID0gaSAqIGk7IGogPD0gbWE7IGogKz0gaSkgZGRbal0gPSAxOwp9CnZvaWQgc2FuZ250dGQoKSB7CiAgICBsb25nIGxvbmcgZDEgPSAwLCBkMiA9IDA7CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSA5OyBpKyspCiAgICAgICAgaWYgKCFkZFtpXSkKICAgICAgICAgICAgZDErKywgZDIrKywgYVtkMV0gPSBpLCBiW2QyXSA9IGk7CiAgICBmb3IgKGludCB0ID0gMTsgdCA8PSA2OyB0KyspIHsKICAgICAgICBsb25nIGxvbmcgZDMgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGQxOyBpKyspCiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IDQ7IGorKykgewogICAgICAgICAgICAgICAgbG9uZyBsb25nIHNvID0gYVtpXSAqIDEwICsgY3NvW2pdOwogICAgICAgICAgICAgICAgaWYgKHNvID4gbWEpCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiAoIWRkW3NvXSkgewogICAgICAgICAgICAgICAgICAgIGQzKys7CiAgICAgICAgICAgICAgICAgICAgbHV1W2QzXSA9IHNvOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgaSA9IGQyICsgMTsgaSA8PSBkMiArIGQzOyBpKyspIGJbaV0gPSBsdXVbaSAtIGQyXTsKICAgICAgICBkMiArPSBkMzsKICAgICAgICBkMSA9IGQzOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGQxOyBpKyspIGFbaV0gPSBsdXVbaV07CiAgICB9CiAgICBmWzBdID0gMTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGQyOyBpKyspCiAgICAgICAgZm9yIChpbnQgaiA9IG1hOyBqID49IGJbaV07IGotLSkKICAgICAgICAgICAgaWYgKGZbaiAtIGJbaV1dICE9IDApCiAgICAgICAgICAgICAgICBmW2pdID0gMTsKfQppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgLy8JZnJlb3BlbigiLklOUCIsInIiLHN0ZGluKTsKICAgIC8vCWZyZW9wZW4oIi5PVVQiLCJ3IixzdGRvdXQpOwogICAgY2luID4+IG47CiAgICBzYW5nbnQoKTsKICAgIHNhbmdudHRkKCk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICAgICAgaWYgKGZbaV0pCiAgICAgICAgICAgIGNvdXQgPDwgaSA8PCAiICI7Cn0=