#include #include using namespace std; bool notPrime[23], used[23]; int n, T; int a[23]; void dfs(int id) { if (id == n - 1) for (int i = 0; i < n && !notPrime[a[0] + a[n - 1]]; i++) printf("%d%c", a[i], " \n"[i == n - 1]); else for (int i = 1; i <= n; i++) if (!used[i] && !notPrime[a[id] + i]) { used[i] = true; a[id + 1] = i; dfs(id + 1); a[id + 1] = 0; used[i] = false; } } int main() { notPrime[0] = notPrime[1] = true; for (int i = 0; i < 23; i++) if (!notPrime[i]) for (int j = i * i; j < 23; j += i) notPrime[j] = true; while (~scanf("%d", &n)) { memset(used, 0, sizeof(used)); memset(a, 0, sizeof(a)); used[a[0] = 1] = true; printf("Case %d:\n", ++T); dfs(0); putchar('\n'); } return 0; }