## a, a+d, a+2d, .., b の和 def rangesum(a, b, d): if not a <= b: return 0 b = a + (b - a) // d * d return (b + a) * ((b - a) // d + 1) // 2 ## 1+2+..+i >= A となる最小の i def f(A): ok = A ng = 0 while ok - ng > 1: m = (ok + ng) // 2 if rangesum(1, m, 1) >= A: ok = m else: ng = m return ok def exact(x, n): for i in range(1, n + 1): if x <= 0: x += i else: x -= i return x def solve(x, n): if x <= 0: m = min(n, f(-x + 1)) x += rangesum(1, m, 1) else: m = min(n, f(x)) x -= rangesum(1, m, 1) m += 1 if m <= n: sum0 = rangesum(m, n, 2) sum1 = rangesum(m + 1, n, 2) if x > 0: x -= sum0 x += sum1 else: x += sum0 x -= sum1 return x x, n = map(int, input().split()) assert -10**18 <= x <= 10**18 assert 1 <= n <= 10**18 print(solve(x, n))