#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;
}