





"""simple docstring"""




a		:					Tuple	      =     [
    (1000, '''M'''),
    (900, '''CM'''),
    (500, '''D'''),
    (400, '''CD'''),
    (100, '''C'''),
    (90, '''XC'''),
    (50, '''L'''),
    (40, '''XL'''),
    (10, '''X'''),
    (9, '''IX'''),
    (5, '''V'''),
    (4, '''IV'''),
    (1, '''I'''),
]






def  _SCREAMING_SNAKE_CASE						(      _lowercase		:       str   )					->int:






	'''simple docstring'''






	a :						List[Any]      =							{"""I""": 1, """V""": 5, """X""": 10, """L""": 50, """C""": 100, """D""": 500, """M""": 1000}
	a :						str      =							0
	a :						Optional[Any]      =							0
	while place < len(_lowercase   ):
		if (place + 1 < len(_lowercase   )) and (vals[roman[place]] < vals[roman[place + 1]]):
			total += vals[roman[place + 1]] - vals[roman[place]]
			place += 2
		else:
			total += vals[roman[place]]
			place += 1
	return total






def  _SCREAMING_SNAKE_CASE						(      _lowercase		:       Optional[Any]   )					->str:






	'''simple docstring'''






	a :						str      =							[]
	for arabic, roman in ROMAN:
		(a) :						Any      =							divmod(_lowercase       ,			_lowercase   )
		result.append(roman * factor   )
		if number == 0:
			break
	return "".join(_lowercase   )


if __name__ == "__main__":
		import doctest

		doctest.testmod()





"""simple docstring"""
from __future__ import annotations

from functools import lru_cache
from math import ceil

_A							=  1_00

_A							=  set(range(3, NUM_PRIMES, 2))
primes.add(2)
_A							=  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_00    )
def 					a__						(						lowerCAmelCase    )	-> set[int]:
      if number_to_partition < 0:
            return set()
      elif number_to_partition == 0:
            return {1}

      UpperCAmelCase__			:							set[int]							=    set()
      UpperCAmelCase__			:							int
      UpperCAmelCase__			:							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__						(						lowerCAmelCase = 50_00    )	-> int | None:
      for number_to_partition in range(1			,	lowerCAmelCase    ):
            if len(partition(lowerCAmelCase    )    ) > number_unique_partitions:
                  return number_to_partition
      return None


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

