


"""simple docstring"""







from __future__ import annotations
def 					a__			(				SCREAMING_SNAKE_CASE    :    List[str]				,      SCREAMING_SNAKE_CASE    :    Any				,      SCREAMING_SNAKE_CASE    :    Any				,      SCREAMING_SNAKE_CASE    :    str				):  # noqa: E741


  '''simple docstring'''







  while r - l > 1:
    lowerCAmelCase     :     str								=							(l + r) // 2
    if v[m] >= key:
      lowerCAmelCase     :     Union[str, Any]								=							m
    else:
      lowerCAmelCase     :     str								=							m  # noqa: E741
  return r
def 					a__			(				SCREAMING_SNAKE_CASE    :    list[int]				):


  '''simple docstring'''







  if len(SCREAMING_SNAKE_CASE				) == 0:
    return 0

  lowerCAmelCase     :     Any								=							[0] * len(SCREAMING_SNAKE_CASE				)
  lowerCAmelCase     :     List[str]								=							1

  lowerCAmelCase     :     Optional[Any]								=							v[0]

  for i in range(1				,      len(SCREAMING_SNAKE_CASE				)				):
    if v[i] < tail[0]:
      lowerCAmelCase     :     List[Any]								=							v[i]
    elif v[i] > tail[length - 1]:
      lowerCAmelCase     :     Optional[int]								=							v[i]
      length += 1
    else:
      lowerCAmelCase     :     List[str]								=							v[i]

  return length


if __name__ == "__main__":
     import doctest

     doctest.testmod()









"""simple docstring"""







from __future__ import annotations

from functools import lru_cache
from math import ceil

lowerCAmelCase__      				=   100

lowerCAmelCase__      				=   set(range(3, NUM_PRIMES, 2))
primes.add(2)
lowerCAmelCase__      				=   42

for prime in range(3, ceil(NUM_PRIMES**0.5), 2):
     if prime not in primes:
          continue
     primes.difference_update(set(range(prime * prime, NUM_PRIMES, prime)))
@lru_cache(maxsize=1_0_0				)
def 					a__			(				SCREAMING_SNAKE_CASE    :    int				):


  '''simple docstring'''







  if number_to_partition < 0:
    return set()
  elif number_to_partition == 0:
    return {1}

  lowerCAmelCase     :     set[int]								=							set()
  lowerCAmelCase     :     int
  lowerCAmelCase     :     int

  for prime in primes:
    if prime > number_to_partition:
      continue
    for sub in partition(number_to_partition - prime				):
      ret.add(sub * prime				)

  return ret
def 					a__			(				SCREAMING_SNAKE_CASE    :    int = 5_0_0_0				):


  '''simple docstring'''







  for number_to_partition in range(1				,      SCREAMING_SNAKE_CASE				):
    if len(partition(SCREAMING_SNAKE_CASE				)				) > number_unique_partitions:
      return number_to_partition
  return None


if __name__ == "__main__":
     print(F"{solution() = }")





