#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int prim[50],n;
int a[20],visit[20];
bool is_prim(int m)
{
for(int i = 2; i*i <= m; i++)
{
if(m % i == 0)
return 0;
}
return 1;
}
void init()
{
memset(prim, 0, sizeof(prim));
prim[2] = 1;
for(int i = 3; i < 50; i++)
{
if(is_prim(i))
prim[i] = 1;
}
}
void print()
{
for(int i = 1; i < n; i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
}
int dfs(int cur)
{
if(cur == n)
{
if(prim[a[cur]+a[1]])
{
print();
return 1;
}
return 0;
}
for(int i = 2; i <= n; i++)
{
if(!visit[i] && prim[a[cur]+i])
{
a[cur+1] = i;
visit[i] = 1;
dfs(cur+1);
visit[i] = 0;
}
}
return 1;
}
void solve()
{
memset(visit, 0, sizeof(visit));
a[1] = 1;
visit[1] = 1;
dfs(1);
}
int main()
{
int ca = 1;
init();
while(scanf("%d",&n) == 1)
{
if(ca > 1)
puts("");
printf("Case %d:\n",ca++);
solve();
}
return 0;
}
回溯