


def   _UpperCamelCase				(						lowerCAmelCase_  ,						lowerCAmelCase_   )						->bool:
   UpperCAmelCase							=     len(lowerCAmelCase_   ) + 1
   UpperCAmelCase							=     len(lowerCAmelCase_   ) + 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.
   UpperCAmelCase							=     [[0 for i in range(lowerCAmelCase_   )] for j in range(lowerCAmelCase_   )]

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

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

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

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







from math import isqrt
def   _UpperCamelCase				(						lowerCAmelCase_   )						->bool:
   return all(number % divisor != 0 for divisor in range(2  ,						isqrt(lowerCAmelCase_   ) + 1   )   )
def   _UpperCamelCase				(						lowerCAmelCase_ = 1_0**6   )						->int:
   UpperCAmelCase							=     0
   UpperCAmelCase							=     1
   UpperCAmelCase							=     7
   while prime_candidate < max_prime:
      primes_count += is_prime(lowerCAmelCase_   )

      cube_index += 1
      prime_candidate += 6 * cube_index

   return primes_count


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



