


from __future__ import annotations







def     lowerCAmelCase_					( __lowerCamelCase							,     __lowerCamelCase     ):
							__snake_case		:      list[list[int]]										=       []
							__snake_case		:      list[int]										=       []
							__snake_case		:      Tuple										=       0
							__snake_case		:      List[str]										=       sum(__lowerCamelCase     )
							create_state_space_tree(__lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase     )
							return result







def     lowerCAmelCase_					( __lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase							,     ):
							if sum(__lowerCamelCase     ) > max_sum or (remaining_nums_sum + sum(__lowerCamelCase     )) < max_sum:
														return
							if sum(__lowerCamelCase     ) == max_sum:
														result.append(__lowerCamelCase     )
														return
							for index in range(__lowerCamelCase							,     len(__lowerCamelCase     )     ):
														create_state_space_tree(
														    __lowerCamelCase							,     __lowerCamelCase							,     index + 1							,     [*path, nums[index]]							,     __lowerCamelCase							,     remaining_nums_sum - nums[index]							,     )
_snake_case					:		Optional[int]   =    [3, 34, 4, 12, 5, 2]
_snake_case					:		Union[str, Any]   =    9
_snake_case					:		Optional[int]   =    generate_sum_of_subsets_soln(nums, max_sum)

print(*result)





from __future__ import annotations

from functools import lru_cache
from math import ceil

_snake_case					:		Tuple      =    100

_snake_case					:		int      =    set(range(3, NUM_PRIMES, 2))
primes.add(2)
_snake_case					:		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=1_0_0     )
def     lowerCAmelCase_					( __lowerCamelCase     ):
							if number_to_partition < 0:
														return set()
							elif number_to_partition == 0:
														return {1}

							__snake_case		:      set[int]										=       set()
							__snake_case		:      int
							__snake_case		:      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     lowerCAmelCase_					( __lowerCamelCase = 5_0_0_0     ):
							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() = }''')

