




def 						lowerCamelCase__    (		_A     ,	_A							):







	'''simple docstring'''





	snake_case_		    =     len(_A							) + 1
	snake_case_		    =     len(_A							) + 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.
	snake_case_		    =     [[0 for i in range(_A							)] for j in range(_A							)]

	# since string of zero length match pattern of zero length
	snake_case_		    =     1

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

	# since string of zero length will match with pattern where there
	# is at least one * alternatively
	for j in range(1     ,	_A							):
		snake_case_		    =     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     ,	_A							):
		for j in range(1     ,	_A							):
			if input_string[i - 1] == pattern[j - 1] or pattern[j - 1] == ".":
				snake_case_		    =     dp[i - 1][j - 1]

			elif pattern[j - 1] == "*":
				if dp[i][j - 2] == 1:
					snake_case_		    =     1
				elif pattern[j - 2] in (input_string[i - 1], "."):
					snake_case_		    =     dp[i - 1][j]
				else:
					snake_case_		    =     0
			else:
				snake_case_		    =     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 :")

		lowercase__				:     Optional[int] 		=						"aab"
		lowercase__				:     List[Any] 		=						"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}''')






def 						lowerCamelCase__    (		_A							):







	'''simple docstring'''





	if num <= 0:
		raise ValueError("Input must be a positive integer"							)

	snake_case_		    =     [True] * (num + 1)

	snake_case_		    =     2
	while p * p <= num:
		if primes[p]:
			for i in range(p * p     ,	num + 1     ,	_A							):
				snake_case_		    =     False
		p += 1

	return [prime for prime in range(2     ,	num + 1							) if primes[prime]]


if __name__ == "__main__":
		import doctest

		doctest.testmod()

		lowercase__				:     Tuple 		=						int(input("Enter a positive integer: ").strip())
		print(prime_sieve_eratosthenes(user_num))
