func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long MAXN = 1e6;   long long seg_t[MAXN * 4];   long long n, k, cur, ans = 1;   void add(long long u, long long curl, long long curr, long long l, long long r,            long long delta) {     long long curm = (curl + curr) / 2;     if (l == curl && r == curr) {       seg_t[u] += delta;       return;     }     if (l <= curm) {       if (r >= curm) {         add(u * 2, curl, curm, l, curm, delta);       } else {         add(u * 2, curl, curm, l, r, delta);       }     }     if (r >= curm + 1) {       if (l <= curm + 1) {         add(u * 2 + 1, curm + 1, curr, curm + 1, r, delta);       } else {         add(u * 2 + 1, curm + 1, curr, l, r, delta);       }     }   }   long long get(long long u, long long curl, long long curr, long long x) {     long long ret = 0;     long long curm = (curl + curr) / 2;     ret += seg_t[u];     if (curl == curr) return ret;     if (x <= curm) {       ret += get(u * 2, curl, curm, x);     } else if (x >= curm + 1) {       ret += get(u * 2 + 1, curm + 1, curr, x);     }     return ret;   }   int main() {     cin.sync_with_stdio(0);     cin.tie(0);     cin >> n >> k;     k = min(k, n - k);     long long r, l = 1;     for (long long i = 0; i < n; ++i) {       r = l + k;       if (r > n) {         add(1, 1, n + 1, l + 1, n + 1, 1);         r -= n;         if (r > 1) add(1, 1, n + 1, 1, r - 1, 1);       } else {         add(1, 1, n + 1, l + 1, r - 1, 1);       }       ans += 1 + get(1, 1, n + 1, l) + get(1, 1, n + 1, r);       cout << ans <<    ;       l = r;     }     return 0;   }   