//你要知道 苦尽甘来
#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;
}