#include  < stdio.h >

struct  xx  {
    
int l, r, m, c;
}
 t[ 9000000 ];
int  n, m, i;

void  make( int  l,  int  r,  int  i)  {
    t[i].l 
= l, t[i].r = r, t[i].m = (l + r) >> 1, t[i].c = r - l;
    
if (l + 1 != r) {
        make(l, t[i].m, i 
<< 1);
        make(t[i].m, r, (i 
<< 1+ 1);
    }

}


int  update( int  l,  int  r,  int  i)  {
    
if (t[i].l == l && t[i].r == r) return t[i].c;
    
if (r <= t[i].m) return update(l, r, i << 1);
    
if (l >= t[i].m) return update(l, r, (i << 1+ 1);
    
return update(l, t[i].m, i << 1+ update(t[i].m, r, (i << 1+ 1);
}


int  find( int  k,  int  i)  {
    t[i].c
--;
    
if (t[i].l == t[i].m) {
        printf(
"%d ", t[i].l);
        
return t[i].l;
    }

    
int s = t[i << 1].c;
    
if (k <= s) return find(k, i << 1);
    
return find(k - s, (i << 1+ 1);
}


int  main()  {
    
while (scanf("%d%d"&n, &m) != EOF) {
        make(
1, n + 11), i = 0;
        
while (i = update(1, find((i + m) % t[1].c ? (i + m) % t[1].c : t[1].c, 1+ 11), t[1].c);
        printf(
"\n");
    }

    
return 0;
}