#include using namespace std; int main() { long long x, n; scanf("%lld %lld", &x, &n); long long ans; if(0 < x) { long long s; long long ng(0LL), ok(2000000000LL); while(1 < ok-ng) { long long mid((ok+ng)/2); if(mid & 1) { if(x <= (mid+1) / 2 * mid) { ok = mid; }else { ng = mid; } }else { if(x <= mid / 2 * (mid+1)) { ok = mid; }else { ng = mid; } } } s = ok; if(n <= s) { if(n & 1) { ans = x - (n+1) / 2 * n; }else { ans = x - n / 2 * (n+1); } }else { if(s & 1) { x = x - (s+1) / 2 * s; }else { x = x - s / 2 * (s+1); } if((n-s) & 1) { ans = x + s + (n-s+1) / 2; }else { ans = x - (n-s) / 2; } } }else { long long s; if(x == 0) { s = 1LL; } else { long long ng(0LL), ok(2000000000LL); while(1 < ok-ng) { long long mid((ok+ng)/2); if(mid & 1) { if(0 < x + (mid+1) / 2 * mid) { ok = mid; }else { ng = mid; } }else { if(0 < x + mid / 2 * (mid+1)) { ok = mid; }else { ng = mid; } } } s = ok; } if(n <= s) { if(n & 1) { ans = x + (n+1) / 2 * n; }else { ans = x + n / 2 * (n+1); } }else { if(s & 1) { x = x + (s+1) / 2 * s; }else { x = x + s / 2 * (s+1); } if((n-s) & 1) { ans = x - s - (n-s+1) / 2; }else { ans = x + (n-s) / 2; } } } printf("%lld\n", ans); return 0; }