#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define el '\n'
#define MOD 1000000007
int n;
const int SIZE = 100;
const int LIMIT = sqrt(SIZE)+1;
bitset<SIZE> prime;
void sieve() {
prime.flip();
prime[1]=0;
for(int i=2;i<=LIMIT;i++){
if (prime[i]){
for(int j=i*i;j<SIZE;j+=i){
prime[j]=0;
}
}
}
}
bool isPrime(int kov) {
return prime[kov];
}
void gensol(int yey, vector<int> ge, vector<int> ga, vector<int> hm){
if(hm.size()==n){
int lastidx = hm.size()-1;
if(isPrime(1+hm[lastidx])){
for(auto x:hm){
cout << x << " ";
}
cout << el;
}
} else {
if(yey%2==1){
vector<int> newge;
for(int i=0;i<ge.size();i++){
newge.push_back(ge[i]);
}
for(int i=0;i<ge.size();i++){
if(isPrime(yey+ge[i])){
hm.push_back(ge[i]);
vector<int> newnewge;
for(int q=0;q<newge.size();q++){
if(newge[q]!=ge[i]){
newnewge.push_back(newge[q]);
}
}
gensol(ge[i], newnewge, ga, hm);
hm.pop_back();
}
}
} else {
vector<int> newga;
for(int i=0;i<ga.size();i++){
newga.push_back(ga[i]);
}
for(int i=0;i<ga.size();i++){
if(isPrime(yey+ga[i])){
hm.push_back(ga[i]);
vector<int> newnewga;
for(int q=0;q<newga.size();q++){
if(newga[q]!=ga[i]){
newnewga.push_back(newga[q]);
}
}
gensol(ga[i], ge, newnewga, hm);
hm.pop_back();
}
}
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
sieve();
int t=1;
while(cin >> n){
vector<int> genap;
vector<int> ganjil;
for(int i=2;i<=n;i+=2){
genap.push_back(i);
}
for(int i=3;i<=n;i+=2){
ganjil.push_back(i);
}
cout << "Case #" << t << ":" << el;
vector<int> res;
res.push_back(1);
gensol(1, genap, ganjil, res);
t++;
cout << el;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKIAojZGVmaW5lIGVsICdcbicKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwoKaW50IG47Cgpjb25zdCBpbnQgU0laRSA9IDEwMDsKY29uc3QgaW50IExJTUlUID0gc3FydChTSVpFKSsxOwoKYml0c2V0PFNJWkU+IHByaW1lOwoKdm9pZCBzaWV2ZSgpIHsKCXByaW1lLmZsaXAoKTsKCXByaW1lWzFdPTA7Cglmb3IoaW50IGk9MjtpPD1MSU1JVDtpKyspewoJCWlmIChwcmltZVtpXSl7CgkJCWZvcihpbnQgaj1pKmk7ajxTSVpFO2orPWkpewogICAgICAgICAgICAJcHJpbWVbal09MDsKICAgICAgICAgICAgfQogICAgICAgIH0KCX0KfQoKYm9vbCBpc1ByaW1lKGludCBrb3YpIHsKCXJldHVybiBwcmltZVtrb3ZdOwp9Cgp2b2lkIGdlbnNvbChpbnQgeWV5LCB2ZWN0b3I8aW50PiBnZSwgdmVjdG9yPGludD4gZ2EsIHZlY3RvcjxpbnQ+IGhtKXsKICAgIGlmKGhtLnNpemUoKT09bil7CiAgICAgICAgaW50IGxhc3RpZHggPSBobS5zaXplKCktMTsKICAgICAgICBpZihpc1ByaW1lKDEraG1bbGFzdGlkeF0pKXsKICAgICAgICAgICAgZm9yKGF1dG8geDpobSl7CiAgICAgICAgICAgICAgICBjb3V0IDw8IHggPDwgIiAiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQgPDwgZWw7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBpZih5ZXklMj09MSl7CiAgICAgICAgICAgIHZlY3RvcjxpbnQ+IG5ld2dlOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPGdlLnNpemUoKTtpKyspewogICAgICAgICAgICAgICAgbmV3Z2UucHVzaF9iYWNrKGdlW2ldKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IoaW50IGk9MDtpPGdlLnNpemUoKTtpKyspewogICAgICAgICAgICAgICAgaWYoaXNQcmltZSh5ZXkrZ2VbaV0pKXsKICAgICAgICAgICAgICAgICAgICBobS5wdXNoX2JhY2soZ2VbaV0pOwogICAgICAgICAgICAgICAgICAgIHZlY3RvcjxpbnQ+IG5ld25ld2dlOwogICAgICAgICAgICAgICAgICAgIGZvcihpbnQgcT0wO3E8bmV3Z2Uuc2l6ZSgpO3ErKyl7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG5ld2dlW3FdIT1nZVtpXSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXduZXdnZS5wdXNoX2JhY2sobmV3Z2VbcV0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGdlbnNvbChnZVtpXSwgbmV3bmV3Z2UsIGdhLCBobSk7CiAgICAgICAgICAgICAgICAgICAgaG0ucG9wX2JhY2soKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZlY3RvcjxpbnQ+IG5ld2dhOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPGdhLnNpemUoKTtpKyspewogICAgICAgICAgICAgICAgbmV3Z2EucHVzaF9iYWNrKGdhW2ldKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IoaW50IGk9MDtpPGdhLnNpemUoKTtpKyspewogICAgICAgICAgICAgICAgaWYoaXNQcmltZSh5ZXkrZ2FbaV0pKXsKICAgICAgICAgICAgICAgICAgICBobS5wdXNoX2JhY2soZ2FbaV0pOwogICAgICAgICAgICAgICAgICAgIHZlY3RvcjxpbnQ+IG5ld25ld2dhOwogICAgICAgICAgICAgICAgICAgIGZvcihpbnQgcT0wO3E8bmV3Z2Euc2l6ZSgpO3ErKyl7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG5ld2dhW3FdIT1nYVtpXSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXduZXdnYS5wdXNoX2JhY2sobmV3Z2FbcV0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGdlbnNvbChnYVtpXSwgZ2UsIG5ld25ld2dhLCBobSk7CiAgICAgICAgICAgICAgICAgICAgaG0ucG9wX2JhY2soKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgc2lldmUoKTsKICAgIGludCB0PTE7CiAgICB3aGlsZShjaW4gPj4gbil7CiAgICAgICAgdmVjdG9yPGludD4gZ2VuYXA7CiAgICAgICAgdmVjdG9yPGludD4gZ2FuamlsOwogICAgICAgIGZvcihpbnQgaT0yO2k8PW47aSs9Mil7CiAgICAgICAgICAgIGdlbmFwLnB1c2hfYmFjayhpKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTM7aTw9bjtpKz0yKXsKICAgICAgICAgICAgZ2FuamlsLnB1c2hfYmFjayhpKTsKICAgICAgICB9CiAgICAKICAgICAgICBjb3V0IDw8ICJDYXNlICMiIDw8IHQgPDwgIjoiIDw8IGVsOwogICAgICAgIHZlY3RvcjxpbnQ+IHJlczsKICAgICAgICByZXMucHVzaF9iYWNrKDEpOwogICAgICAgIGdlbnNvbCgxLCBnZW5hcCwgZ2FuamlsLCByZXMpOwogICAgICAgIHQrKzsKICAgICAgICBjb3V0IDw8IGVsOwogICAgfQogICAgcmV0dXJuIDA7ICAKfQ==