#include<stdio.h>#include<string.h>#include<math.h>static int n, m, d, find = 0, len = 0, primes[1300], map[10000], a[1000], v[1001];void generate_primes(){ int num, i, n, is_prime; for (num = 2; num <= 10000; num++) { n = (int) sqrt(num); is_prime = 1; for (i = 0; i < len && primes[i] <= n; i++) if (num % primes[i] == 0) { is_prime = 0; break; } if (is_prime) map[primes[len++] = num] = 1; }}void print_anti_primes(){ int i; for (i = 0; i < m - n + 1; i++) printf(i ? ",%d" : "%d", a[i]); putchar('n');}int test_anti_primes(int num, int index){ if (!index) return 1; int i, sum = num; for (i = index - 1; i >= 0 && i >= index + 1 - d; i--) if (map[sum += a[i]]) return 0; return 1;}void dfs2203(int depth){ if (depth == m - n + 1) { find = 1; print_anti_primes(); } if (find) return; int i; for (i = n; i <= m; i++) if (!v[i] && test_anti_primes(i, depth)) { v[i] = 1; a[depth] = i; dfs2203(depth + 1); v[i] = 0; }}int main(){ memset(map, 0, 10000 * sizeof(int)); generate_primes(); while (scanf("%d %d %d", &n, &m, &d), n && m && d) { memset(v, 0, 1001 * sizeof(int)); find = 0; dfs2203(0); if (!find) puts("No anti-prime sequence exists."); } return 0;}