//你要知道 苦尽甘来
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <ctype.h>
#include <queue>
#include <stack>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int n, k, m;
int a[25] = {0};
int go(int p, int d, int t)
{
while(t--)
{
do{
p = (p + d + n - 1) % n + 1;
//乍一看似乎可以(p + d) % n
//但你要体谅d有时为负
//怎么把1流畅的切换成10
//只能这么写了
}while(a[p] == 0);
}
return p;
}
int main()
{
while(scanf("%d %d %d",&n,&k,&m) == 3 && n)
{
for(int i = 1; i <= n; i++)
{
a[i] = i;
}
int left = n;//还剩下几个没被点到
int p1 = n;//指针 细节 狗官A从1开始 数但是我们给的起点是n 后移了一位
int p2 = 1;//同上 你品 你细品
while(left)
{//走完指针停哪哪完蛋
p1 = go(p1, 1, k);//起始位置 顺逆 走几步
p2 = go(p2, -1, m);
printf("%3d",p1);
left--;
if(p2 != p1)
{
printf("%3d",p2);
left--;
}
a[p1] = a[p2] = 0;
if(left)
{
printf(",");
}
}
printf("\n");
}
return 0;
}