



'''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=100    )
def 	__lowerCamelCase	( lowerCAmelCase_    )     -> set[int]:
		if number_to_partition < 0:
				return set()
		elif number_to_partition == 0:
				return {1}

		_a	: set[int]								=				set()
		_a	: int
		_a	: 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_ = 5000    )     -> 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() = }""")









'''simple docstring'''

def 	__lowerCamelCase	( )     -> Union[str, Any]:
		_a	: Optional[Any]								=				[]
		_a	: List[str]								=				1

		while len(lowerCAmelCase_    ) < 1E6:
				constant.append(str(lowerCAmelCase_    )    )
				i += 1

		_a	: Optional[Any]								=				''.join(lowerCAmelCase_    )

		return (
		    int(constant[0]    )
		    * int(constant[9]    )
		    * int(constant[99]    )
		    * int(constant[999]    )
		    * int(constant[9999]    )
		    * int(constant[99999]    )
		    * int(constant[999999]    )
		)


if __name__ == "__main__":
							print(solution())




