def calc(x, m): T = [] st = max(1, x // m) pre = x + 1 for i in range(st, x + 1): now = x // i if pre == now: break T.append(x // i) pre = now T += list(reversed(range(now))) nt = len(T) ret = x * m for i in range(nt - 1): a, b = T[i], T[i + 1] ret -= (a - b) * (a + b + 1) // 2 * (x // a) #print(i, a, b, x // a, (a - b) * (a + b + 1) // 2 * (x // a)) return ret N, M = map(int, input().split()) ans = 0 for i in range(1, N + 1): ans = max(ans, calc(i, M)) print(ans)