#include<bits/stdc++.h>
using namespace std;
int A,B,C,d[21],f[21][21][21];
void dfs(int a,int b,int c) {
if(a==0) d[c]=1;
if(f[a][b][c]==1) return ;
f[a][b][c]=1;
if(a>=B-b) dfs(a-(B-b),B,c);
else dfs(0,b+a,c);
if(a>=C-c) dfs(a-(C-c),b,C);
else dfs(0,b,c+a);
if(b>=C-c) dfs(a,b-(C-c),C);
else dfs(a,0,c+b);
if(b>=A-a) dfs(A,b-(A-a),c);
else dfs(a+b,0,c);
if(c>=A-a) dfs(A,b,c-(A-a));
else dfs(a+c,b,0);
if(c>=B-b) dfs(a,B,c-(B-b));
else dfs(a,b+c,0);
}
int main() {
cin>>A>>B>>C;
dfs(0,0,C);
for(int i=0; i<=20; i++) if(d[i]==1) cout<<i<<" ";
}
#include<bits/stdc++.h>
using namespace std;
long long n;
bool ss(int x) {
if (x<2) return false;
int k=sqrt (x);
for (int i=2; i<=k; i++) if (x%i==0) return false;
return true;
}
void dfs(int x,int deep)
{
if(deep==n)
{
cout<<x<<endl;
return ;
}
if (ss(x*10+1))dfs(x*10+1,deep+1);
if (ss(x*10+3)) dfs(x*10+3,deep+1);
if (ss(x*10+7)) dfs(x*10+7,deep+1);
if (ss(x*10+9)) dfs(x*10+9,deep+1);
}
int main()
{
cin>>n;
dfs(2,1);
dfs(3,1);
dfs(5,1);
dfs(7,1);
}