1 #include <bits/stdc++.h>
2 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
3 using namespace std;
4
5 int isp[39] = {0,0,1,1,0,
6 1,0,1,0,0,
7 0,1,0,1,0,
8 0,0,1,0,1,
9 0,0,0,1,0,
10 0,0,0,0,1,
11 0,1,0,0,0};
12 int n;
13 int A[39];
14 int vis[39];
15 void dfs(int cur)
16 {
17 if(cur == n && isp[A[0]+A[n-1]])
18 {
19 _for(i,0,n-1)
20 printf("%d ",A[i]);
21 printf("%d\n",A[n-1]);
22 }
23 else
24 _for(i,2,n+1)
25 {
26 if(!vis[i] && isp[i+A[cur-1]])
27 {
28 A[cur] = i;
29 vis[i] = 1;
30 dfs(cur+1);
31 vis[i] = 0;
32 }
33 }
34 }
35 int main()
36 {
37 int kase = 0;
38 while(cin >> n)
39 {
40 memset(A,0,sizeof(A));
41 memset(vis,0,sizeof(vis));
42 if(kase)
43 printf("\n");
44 printf("Case %d:\n",++ kase);
45 A[0] = 1;
46 vis[1] = 1;
47 dfs(1);
48
49 }
50 return 0;
51 }