
'''simple docstring'''






from __future__ import annotations

from functools import lru_cache
from math import ceil

UpperCAmelCase_       :   Tuple   =       100

UpperCAmelCase_       :   Optional[int]   =       set(range(3, NUM_PRIMES, 2))
primes.add(2)
UpperCAmelCase_       :   int

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=100							)
def 		A_       (	_lowerCAmelCase   :    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_       (	_lowerCAmelCase   :    int = 5000							):



      """simple docstring"""




      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() = }''')

'''simple docstring'''






import random
from typing import Any







def 		A_       (	_lowerCAmelCase   :    list							):



      """simple docstring"""




      for _ in range(len(_lowerCAmelCase							)							):
            _lowerCamelCase				:   Any								=   random.randint(0				,	len(_lowerCAmelCase							) - 1							)
            _lowerCamelCase				:   List[str]								=   random.randint(0				,	len(_lowerCAmelCase							) - 1							)
            _lowerCamelCase						,		_lowerCamelCase				:   Union[str, Any]								=   data[b], data[a]
      return data


if __name__ == "__main__":
 UpperCAmelCase_       :   Any   =       [0, 1, 2, 3, 4, 5, 6, 7]
 UpperCAmelCase_       :   Dict   =       ['python', 'says', 'hello', '!']
 print('Fisher-Yates Shuffle:')
 print('List', integers, strings)
 print('FY Shuffle', fisher_yates_shuffle(integers), fisher_yates_shuffle(strings))