bad = {2,3,6,7,8,11,12,15,18,19,22,23,24,27,28,31,32,33,43,44,47,48,60,67,72,76,92,96,108,112,128} R, B = map(int, input().split()) if R > B: R, B = B, R def check(x): tot = x * (x + 1) * (2 * x + 1) // 6 if tot > R + B: return False r = max(0, tot - B) b = tot - r if x >= 11: while r <= min(b, R): if r not in bad: return True r += 1 b -= 1 else: dp = 1 for i in range(1, x + 1): dp |= dp << i * i while r <= min(b, R): if dp >> r & 1: return True r += 1 b -= 1 return False r = 1 while check(r): r *= 2 l = r // 2 while r - l > 1: c = (l + r) // 2 if check(c): l = c else: r = c print(l)