

"""simple docstring"""


def     a__    (    __SCREAMING_SNAKE_CASE					, __SCREAMING_SNAKE_CASE )	->	bool:
		__lowerCAmelCase:       Optional[Any]          =			len(__SCREAMING_SNAKE_CASE ) + 1
		__lowerCAmelCase:       Optional[Any]          =			len(__SCREAMING_SNAKE_CASE ) + 1

		# dp is a 2d matrix where dp[i][j] denotes whether prefix string of
		# length i of input_string matches with prefix string of length j of
		# given pattern.
		# "dp" stands for dynamic programming.
		__lowerCAmelCase:       Any          =			[[0 for i in range(__SCREAMING_SNAKE_CASE )] for j in range(__SCREAMING_SNAKE_CASE )]

		# since string of zero length match pattern of zero length
		__lowerCAmelCase:       List[Any]          =			1

		# since pattern of zero length will never match with string of non-zero length
		for i in range(1					, __SCREAMING_SNAKE_CASE ):
				__lowerCAmelCase:       Any          =			0

		# since string of zero length will match with pattern where there
		# is at least one * alternatively
		for j in range(1					, __SCREAMING_SNAKE_CASE ):
				__lowerCAmelCase:       Dict          =			dp[0][j - 2] if pattern[j - 1] == "*" else 0

		# now using bottom-up approach to find for all remaining lengths
		for i in range(1					, __SCREAMING_SNAKE_CASE ):
				for j in range(1					, __SCREAMING_SNAKE_CASE ):
						if input_string[i - 1] == pattern[j - 1] or pattern[j - 1] == ".":
								__lowerCAmelCase:       List[str]          =			dp[i - 1][j - 1]

						elif pattern[j - 1] == "*":
								if dp[i][j - 2] == 1:
										__lowerCAmelCase:       List[str]          =			1
								elif pattern[j - 2] in (input_string[i - 1], "."):
										__lowerCAmelCase:       Optional[int]          =			dp[i - 1][j]
								else:
										__lowerCAmelCase:       Dict          =			0
						else:
								__lowerCAmelCase:       Optional[int]          =			0

		return bool(dp[-1][-1] )


if __name__ == "__main__":
			import doctest

			doctest.testmod()
			# inputing the strings
			# input_string = input("input a string :")
			# pattern = input("input a pattern :")

			__A						   =			"aab"
			__A						   =			"c*a*b"

			# using function to check whether given string matches the given pattern
			if match_pattern(input_string, pattern):
						print(F'''{input_string} matches the given pattern {pattern}''')
			else:
						print(F'''{input_string} does not match with the given pattern {pattern}''')





"""simple docstring"""


from __future__ import annotations






def     a__    (    __SCREAMING_SNAKE_CASE )	->	bool:
		__lowerCAmelCase:       Tuple          =			str(__SCREAMING_SNAKE_CASE )
		return len(__SCREAMING_SNAKE_CASE ) == 9 and set(__SCREAMING_SNAKE_CASE ) == set("123456789" )






def     a__    (    )	->	int | None:
		for base_num in range(9_9_9_9					, 4_9_9_9					, -1 ):
				__lowerCAmelCase:       Tuple          =			1_0_0_0_0_2 * base_num
				if is_9_pandigital(__SCREAMING_SNAKE_CASE ):
						return candidate

		for base_num in range(3_3_3					, 9_9					, -1 ):
				__lowerCAmelCase:       int          =			1_0_0_2_0_0_3 * base_num
				if is_9_pandigital(__SCREAMING_SNAKE_CASE ):
						return candidate

		return None


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


