





'''simple docstring'''

def  a__    (    lowercase :					int, lowercase :					list[int], lowercase :					int				)		->		int:





     """simple docstring"""

     def count_of_possible_combinations(lowercase :					int				) -> int:
          if target < 0:
               return 0
          if target == 0:
               return 1
          return sum(count_of_possible_combinations(target - item				) for item in array				)

     return count_of_possible_combinations(lowercase				)







def  a__    (    lowercase :					int, lowercase :					list[int], lowercase :					int				)		->		int:





     """simple docstring"""

     def count_of_possible_combinations_with_dp_array(
         lowercase :					int, lowercase :					list[int]				) -> int:
          if target < 0:
               return 0
          if target == 0:
               return 1
          if dp_array[target] != -1:
               return dp_array[target]
          _UpperCamelCase       =	sum(
              count_of_possible_combinations_with_dp_array(target - item, lowercase				)
              for item in array				)
          _UpperCamelCase       =	answer
          return answer

     _UpperCamelCase       =	[-1] * (target + 1)
     return count_of_possible_combinations_with_dp_array(lowercase, lowercase				)







def  a__    (    lowercase :					int, lowercase :					list[int], lowercase :					int				)		->		int:





     """simple docstring"""

     _UpperCamelCase       =	[0] * (target + 1)
     _UpperCamelCase       =	1

     for i in range(1, target + 1				):
          for j in range(lowercase				):
               if i - array[j] >= 0:
                    dp_array[i] += dp_array[i - array[j]]

     return dp_array[target]


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   lowercase__						:      Union[str, Any]	=    3
   lowercase__						:      str	=    5
   lowercase__						:      List[str]	=    [1, 2, 5]
   print(combination_sum_iv(n, array, target))










'''simple docstring'''

def  a__    (    lowercase :					int, lowercase :					int				)		->		int:





     """simple docstring"""

     return x if y == 0 else greatest_common_divisor(lowercase, x % y				)







def  a__    (    lowercase :					int, lowercase :					int				)		->		int:





     """simple docstring"""

     return (x * y) // greatest_common_divisor(lowercase, lowercase				)







def  a__    (    lowercase :					int = 20				)		->		int:





     """simple docstring"""

     _UpperCamelCase       =	1
     for i in range(1, n + 1				):
          _UpperCamelCase       =	lcm(lowercase, lowercase				)
     return g


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



