1 #include<iostream>
2 #include<cstdio>
3 #include<cmath>
4 using namespace std;
5 const int N=18;
6 int n;
7 int vis[N];
8 int ans[N];
9 int top;
10 int use[N];
11 void print()
12 {
13 for(int i=1;i<=n;i++)
14 {
15 printf("%d ",ans[i]);
16 }
17 printf("\n");
18 }
19 bool pd(int l)
20 {
21 for(int i=2; i<=sqrt(l); i++)
22 if(l%i==0)return false;
23 return true;
24 }
25 void dfs(int x)
26 {
27 for(int i=2;i<=n;i++)
28 {
29 if(use[i]==0&&pd(ans[x-1]+i))
30 {
31 ans[x]=i;
32 use[i]=1;
33 if(x==n&&pd(ans[n]+ans[1]))print();
34 else dfs(x+1);
35 use[i]=0;
36 }
37 }
38 }
39 int main()
40 {
41 cin>>n;
42 if(n%2==1)
43 {
44 cout<<endl;
45 return 0;
46 }
47 ans[1]=1;
48 dfs(2);
49 }