#include<iostream>
using namespace std;
bool used[21];
bool prim[41];
int a[21];
int n;
void Initprim()
{
int i;
for(i = 0;i <= 40;i++)
{
prim[i] = false;
}
prim[2] = prim[3] = prim[5] = prim[7] = true;
prim[11] = prim[13] = prim[17] = prim[19] = true;
prim[23] = prim[29] = prim[31] = prim[37] = true;
}//将40以内的素数标记出来
void Dfs(int k)
{
int i;
if(k > n)
{
if(prim[a[1] + a[n]])//如果头尾相加是素数,就可输出
{
cout<<a[1];
for(i = 2;i <= n;i++)
{
cout<<" "<<a[i];
}
cout<<endl;
}
}
else
{
for(i = 2;i <= n;i++)
{
if(!used[i] && prim[i + a[k -1]])
{
used[i] = true;
a[k] = i;
Dfs(k + 1);//一直深搜,
used[i] = false;
}
}
}
}
int main()
{
int cases = 1;
int i;
Initprim();
for(i = 1;i <= 20;i++)
used[i] = false;
used[1] = true;
a[1] = 1;
while(cin>>n)
{
cout<<"Case "<<cases++<<":"<<endl;
Dfs(2);
cout<<endl;
}
return 0;
}