#include <bits/stdc++.h>
#define ll long long
#define in cin
#define out cout
#define endl '\n'
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++)
if (n % i == 0) return false;
return true;
}
bool primes[100];
vector<ll> ring;
vector<bool> used(20);
void rec(ll n, ll index) {
if (index == n) {
if (primes[ring[n-1] + ring[0]]) {
for (int i = 0; i < n; i++) out << ring[i] << ' ';
out << endl;
}
return;
}
for (int i = 2; i <= n; i++) {
if (!used[i] && primes[ ring[index - 1] + i ]) {
ring[index] = i;
used[i] = true;
rec(n, index + 1);
used[i] = false;
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
for (int i = 1; i < 100; i++) primes[i] = isPrime(i);
ll n, cases = 1;
while (in >> n) {
if (cases > 1) out << endl;
out << "Case " << cases++ << ":" << endl;
ring.assign(n, 0);
fill(used.begin(), used.end(), false);
ring[0] = 1;
used[1] = true;
rec(n, 1);
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgaW4gY2luCiNkZWZpbmUgb3V0IGNvdXQKI2RlZmluZSBlbmRsICdcbicKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgaXNQcmltZShpbnQgbikgewogICAgaWYgKG4gPD0gMSkgcmV0dXJuIGZhbHNlOwogICAgZm9yIChpbnQgaSA9IDI7IGkgKiBpIDw9IG47IGkrKykKICAgICAgICBpZiAobiAlIGkgPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIHRydWU7Cn0KCmJvb2wgcHJpbWVzWzEwMF07CnZlY3RvcjxsbD4gcmluZzsKdmVjdG9yPGJvb2w+IHVzZWQoMjApOwoKdm9pZCByZWMobGwgbiwgbGwgaW5kZXgpIHsKICAgIGlmIChpbmRleCA9PSBuKSB7CiAgICAgICAgaWYgKHByaW1lc1tyaW5nW24tMV0gKyByaW5nWzBdXSkgewogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgb3V0IDw8IHJpbmdbaV0gPDwgJyAnOwogICAgICAgICAgICBvdXQgPDwgZW5kbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAyOyBpIDw9IG47IGkrKykgewogICAgICAgIGlmICghdXNlZFtpXSAmJiBwcmltZXNbIHJpbmdbaW5kZXggLSAxXSArIGkgXSkgewogICAgICAgICAgICByaW5nW2luZGV4XSA9IGk7CiAgICAgICAgICAgIHVzZWRbaV0gPSB0cnVlOwogICAgICAgICAgICByZWMobiwgaW5kZXggKyAxKTsKICAgICAgICAgICAgdXNlZFtpXSA9IGZhbHNlOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPCAxMDA7IGkrKykgcHJpbWVzW2ldID0gaXNQcmltZShpKTsKCiAgICBsbCBuLCBjYXNlcyA9IDE7CiAgICB3aGlsZSAoaW4gPj4gbikgewogICAgICAgIGlmIChjYXNlcyA+IDEpIG91dCA8PCBlbmRsOwogICAgICAgIG91dCA8PCAiQ2FzZSAiIDw8IGNhc2VzKysgPDwgIjoiIDw8IGVuZGw7CiAgICAgICAgcmluZy5hc3NpZ24obiwgMCk7CiAgICAgICAgZmlsbCh1c2VkLmJlZ2luKCksIHVzZWQuZW5kKCksIGZhbHNlKTsKICAgICAgICByaW5nWzBdID0gMTsKICAgICAgICB1c2VkWzFdID0gdHJ1ZTsKICAgICAgICByZWMobiwgMSk7CiAgICB9Cn0K