#
# Kingston 4.1
#

def findMaxN(f):

  # find først det interval n ligger i
  bund, top = 0,1
  while f(top) >= 0:
    bund, top = top, top*2

  # lav dernæst binær søgning i dette interval

  while top-bund > 1:
    midt = (top+bund) / 2
    if f(midt) >= 0:
      bund = midt
    else:
      top = midt

  return bund

# test

def f(n):
  return 1025 - n

print findMaxN(f)

