#include<stdio.h>
#include<stdlib.h>
typedef struct queue
{
int num;
queue *pre;
queue *next;
}queue;
int main()
{
int n,k,m;
while(scanf("%d%d%d",&n,&k,&m)!=EOF)
{
if(n==0&&k==0&&m==0)
break;
queue *p,*front,*rear;
p=(queue*)malloc(sizeof(queue));
front=p;
int i;
for(i=1;i<=n-1;i++)
{
queue *point;
point=(queue*)malloc(sizeof(queue));
p->next=point;
p=point;
}
rear=p;
p->next=front;
queue *p1,*p2;
p1=front;
p2=front->next;
for(i=1;i<=n-1;i++)
{
p2->pre=p1;
p1=p1->next;
p2=p2->next;
}
front->pre=p1;
p=front;
for(i=0;i<n;i++)
{
p->num=i+1;
p=p->next;
}
int count=0;
queue *chose1=front->pre;
queue *chose2=rear->next;
while(count!=n)
{
p=chose1->next;
for(i=1;i<=k-1;i++)
p=p->next;
chose1=p;
p=chose2->pre;
for(i=1;i<=m-1;i++)
p=p->pre;
chose2=p;
if(chose1!=chose2)
{
if(count!=n-2)
printf("%3d%3d,",chose1->num,chose2->num);
else
printf("%3d%3d",chose1->num,chose2->num);
chose1->pre->next=chose1->next;
chose1->next->pre=chose1->pre;
if(chose1->next==chose2)
chose1->next=chose2->next;
chose2->pre->next=chose2->next;
chose2->next->pre=chose2->pre;
count=count+2;
}
else
{ if(count!=n-1)
printf("%3d,",chose1->num);
else
printf("%3d",chose1->num);
chose1->pre->next=chose1->next;
chose1->next->pre=chose1->pre;
count++;
}
}
printf("\n");
}
return 0;
}