function lower_bound(sorted_items, target): # first index where value >= target

   low, high = 0, length(sorted_items)
   while low < high:
      mid = (low + high) // 2
      if sorted_items[mid] < target:
        low = mid + 1
      else:

        high = mid
   return low                  # e.g. first day with rain >= 50%
