//sicily 1002. Anti-prime Sequences
#include<iostream> //DFS,给出n,m,d,元素的取值从n到m,判断是否存在一个排列,使得在序列中任意(2,3,...d)个数的和都不是素数,如果有则输出最小的那个序列
#include<stdio.h>
#include<cstring>
using namespace std;
int n,m,d,arr[1010];
bool prime(int s)
{
for(int i=2;i*i<=s;++i)
if(s%i==0)
return false;
return true;
}
bool fit(int id,int s) //判断元素s是否可以放在arr[i]的位置上
{
for(int i=id-1;i>=0&&i>=id-d+1;--i)
{
s+=arr[i];
if(prime(s))
return false;
}
return true;
}
int vis[1010],suc;
void dfs(int id)
{
for(int i=n;i<=m;++i)
if(vis[i]==0&&fit(id,i))
{
vis[i]=1;
arr[id]=i;
if(id==m-n)
{
suc=1;
return ;
}
dfs(id+1);
if(suc==1)
return ;
vis[i]=0;
}
}
int main()
{
while(cin>>n>>m>>d&&n)
{
suc=0;
memset(vis,0,sizeof(vis));
dfs(0);
if(suc==1)
{
printf("%d",arr[0]);
for(int i=1;i<=m-n;++i)
printf(",%d",arr[i]);
printf("\n");
}
else
printf("No anti-prime sequence exists.\n");
}
return 0;
}