#include<cstdio>
#include<iostream>
#include<cstring>
#include<set>
using namespace std;
int cir[25],n;
bool vis[25];
set<int>st;
bool isprime(int n)
{
for(int i=2; i*i<=n; i++)
if(n%i==0)
return false;
return true;
}
void intline()
{
st.insert(2);
for(int i=3; i<=40; i++)
if(isprime(i))
st.insert(i);
}
void dfs(int cur)
{
if(cur==n)
{
int a=cir[n-1]+cir[0];
if(st.count(a))
{
for(int i=0; i<n; i++)
{
if(i)
cout<<" ";
cout<<cir[i];
}
cout<<endl;
}
return ;
}
for(int i=2; i<=n; i++)
{
if(vis[i]) continue;
int a=i+cir[cur-1];
if(st.count(a))
{
cir[cur]=i;
vis[i]=true;
dfs(cur+1);
vis[i]=false;
}
}
}
int main()
{
//freopen("in.txt","r",stdin);
intline();
int cas=0;
while(cin>>n)
{
cas++;
cout<<"Case "<<cas<<":"<<endl;
memset(vis,false,sizeof(vis));
vis[1]=true;
cir[0]=1;
dfs(1);
cout<<endl;
}
return 0;
}