{.warning[SmallLshouldNotBeUsed]: off.} import strutils, sequtils, algorithm, future proc f(m, vm: int, dp: seq[seq[int]]): bool = result = dp[0][m] < vm proc g(m, vm: int, dp: seq[seq[int]]): bool = result = dp[0][m] <= vm when isMainModule: var n = stdin.readLine.parseInt v = newSeq[int](n) w = newSeq[int](n) for i in 0.. 1: var m = (l + r) div 2 if f(m, vm, dp): l = m else: r = m var a = -1 for i in max(1, l-5)..min(l+5, W-1): if not f(i, vm, dp): a = i break echo a (l, r) = (-1, W) while r - l > 1: var m = (l + r) div 2 if g(m, vm, dp): l = m else: r = m var b = l-5 for i in max(1, l-5)..min(l+5, W-1): if g(i, vm, dp): b = i else: break if not g(b+1, vm, dp): echo b else: echo "inf"