#include<iostream>//2365548 2010-04-21 14:16:05 Accepted 1016 500MS 300K 1160 B C++ 悔惜晟
#include<cstring>
using namespace std;
bool hash[40];
bool hash1[25];
int num[25];
int n;
void dfs(int count)
{
int j;
if(count == n)
{
if(hash[ num[1] + num[n] ])
{
for( j = 1; j <= n; j++)
if(j != n)
cout<<num[j]<<" ";
else
cout<<num[j];
cout<<endl;
}
}
//if(!hash[num[count]])
//return ;
else
for(j = 2; j <= n; j++)
if(hash[num[count ] + j] && !hash1[j] )
{
num[count + 1] = j;
hash1[j] = true;
dfs(count + 1);
hash1[j] = false;
}
//return ;
}
int main()
{
int cas;
cas = 1;
memset(hash, false, sizeof(hash));
hash[2] = true; hash[3] = true; hash[5] = true;
hash[7] = true; hash[11] = true; hash[13] = true;
hash[17] = true; hash[19] = true; //hash[21] = true; 一开始这里弄错了,纠结啊
hash[23] = true; hash[29] = true; hash[31] = true;
hash[37] = true;
while(cin>>n)
{
if(n == 1)
{
cout<<"Case "<<cas++<<":"<<endl;
cout<<"1"<<endl<<endl;
continue;
}
memset(hash1, false, sizeof(hash1));
cout<<"Case "<<cas++<<":"<<endl;
int count = 1;
hash1[1] = true;
num[1] = 1;
dfs(count);
cout<<endl;
}
}