#include<stdio.h>
#include<string.h>
int main()
{
int a[30];
int i,N,k,m;
while(scanf("%d%d%d",&N,&k,&m)!=EOF)
{
if(N==0&&k==0&&m==0)
return 0;
memset(a,0,sizeof(a));
for(i=1;i<=N;i++)
a[i]=i;
int maxn=N; //maxn为剩下的人数
int t,l;
t=1;l=N; //t为A官每次选择的人的序号,l为B官的,并将它们初始化
while(maxn)
{
int kase;
kase=0;
for(i=t;;i++) //A官选
{
if(a[i]!=0)
kase++;//表示A官数过的人数
if(kase==k)
{
t=i;
break;
}
if(i==N)
i=0;
}
int ans;
ans=0;
for(i=l;;i--)//B官选
{
if(a[i]!=0)
ans++;//表示B官数过的人数
if(ans==m)
{
l=i;
break;
}
if(i==1)
i=N+1;
}
if(t==l)
{
if(maxn==1)
printf("%3d",t);
else
printf("%3d,",t);
a[t]=0;
maxn--;
}
else
{
if(maxn==2)
{
printf("%3d",t);
printf("%3d",l);
}
else
{
printf("%3d",t);
printf("%3d,",l);
}
a[t]=0;a[l]=0;//将点到的人踢出数组
maxn-=2;
}
if(maxn==0)
printf("\n");
}
}
return 0;
}
#include<string.h>
int main()
{
int a[30];
int i,N,k,m;
while(scanf("%d%d%d",&N,&k,&m)!=EOF)
{
if(N==0&&k==0&&m==0)
return 0;
memset(a,0,sizeof(a));
for(i=1;i<=N;i++)
a[i]=i;
int maxn=N; //maxn为剩下的人数
int t,l;
t=1;l=N; //t为A官每次选择的人的序号,l为B官的,并将它们初始化
while(maxn)
{
int kase;
kase=0;
for(i=t;;i++) //A官选
{
if(a[i]!=0)
kase++;//表示A官数过的人数
if(kase==k)
{
t=i;
break;
}
if(i==N)
i=0;
}
int ans;
ans=0;
for(i=l;;i--)//B官选
{
if(a[i]!=0)
ans++;//表示B官数过的人数
if(ans==m)
{
l=i;
break;
}
if(i==1)
i=N+1;
}
if(t==l)
{
if(maxn==1)
printf("%3d",t);
else
printf("%3d,",t);
a[t]=0;
maxn--;
}
else
{
if(maxn==2)
{
printf("%3d",t);
printf("%3d",l);
}
else
{
printf("%3d",t);
printf("%3d,",l);
}
a[t]=0;a[l]=0;//将点到的人踢出数组
maxn-=2;
}
if(maxn==0)
printf("\n");
}
}
return 0;
}