rt.
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
bool chosen[N];
bool is_print;
int n, m, d;
int a[N];
bool is_prime(int x) {
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
bool check(int pos) {
for (int len = 2; len <= d; len++) {
int l = pos - len + 1, r = pos;
if (l < 1) {
continue;
}
int sum = 0;
for (int k = l; k <= r; k++) {
sum += a[k];
}
if (is_prime(sum)) {
return false;
}
}
return true;
}
void dfs(int pos) {
if (!check(pos - 1) || is_print) {
return;
}
if (pos == m - n + 2) {
for (int i = 1; i <= m - n + 1; i++) {
cout << a[i] << " ";
}
cout << "\n";
is_print = true;
return;
}
for (int i = n; i <= m; i++) {
if (!chosen[i - n]) {
a[pos] = i;
chosen[i - n] = true;
dfs(pos + 1);
chosen[i - n] = false;
}
}
}
int main() {
ios::sync_with_stdio(false), cin.tie(0);
while (cin >> n >> m >> d && n && m && d) {
memset(chosen, false, sizeof(chosen));
is_print = false;
dfs(1);
if (!is_print) {
cout << "No anti-prime sequence exists.\n";
}
}
return 0;
}