






from itertools import product







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase			) ->	list[int]:
     UpperCamelCase__			:   Union[str, Any]       				=  sides_number
     UpperCamelCase__			:   Optional[int]       				=  max_face_number * dice_number
     UpperCamelCase__			:   Tuple       				=  [0] * (max_total + 1)

     UpperCamelCase__			:   Union[str, Any]       				=  1
     UpperCamelCase__			:   Optional[int]       				=  range(__lowerCAmelCase					,    max_face_number + 1			)
     for dice_numbers in product(__lowerCAmelCase					,    repeat=__lowerCAmelCase			):
          UpperCamelCase__			:   Tuple       				=  sum(__lowerCAmelCase			)
          totals_frequencies[total] += 1

     return totals_frequencies







def 		SCREAMING_SNAKE_CASE							(					) ->	float:
     UpperCamelCase__			:   str       				=  total_frequency_distribution(
         sides_number=4					,    dice_number=9			)
     UpperCamelCase__			:   Any       				=  total_frequency_distribution(
         sides_number=6					,    dice_number=6			)

     UpperCamelCase__			:   Optional[Any]       				=  0
     UpperCamelCase__			:   Dict       				=  9
     UpperCamelCase__			:   Tuple       				=  4 * 9
     UpperCamelCase__			:   int       				=  6
     for peter_total in range(__lowerCAmelCase					,    max_peter_total + 1			):
          peter_wins_count += peter_totals_frequencies[peter_total] * sum(
              colin_totals_frequencies[min_colin_total:peter_total]			)

     UpperCamelCase__			:   Any       				=  (4**9) * (6**6)
     UpperCamelCase__			:   Optional[Any]       				=  peter_wins_count / total_games_number

     UpperCamelCase__			:   Any       				=  round(__lowerCAmelCase					,    ndigits=7			)

     return rounded_peter_win_probability


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







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase			) ->	int:
     while b:
          UpperCamelCase__				,     UpperCamelCase__			:   int       				=  b, a % b
     return a







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase			) ->	int:
     return a if b == 0 else euclidean_gcd_recursive(__lowerCAmelCase					,    a % b			)







def 		SCREAMING_SNAKE_CASE							(					) ->	str:
     print(f'euclidean_gcd(3, 5) = {euclidean_gcd(3					,    5			)}'			)
     print(f'euclidean_gcd(5, 3) = {euclidean_gcd(5					,    3			)}'			)
     print(f'euclidean_gcd(1, 3) = {euclidean_gcd(1					,    3			)}'			)
     print(f'euclidean_gcd(3, 6) = {euclidean_gcd(3					,    6			)}'			)
     print(f'euclidean_gcd(6, 3) = {euclidean_gcd(6					,    3			)}'			)

     print(f'euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3					,    5			)}'			)
     print(f'euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5					,    3			)}'			)
     print(f'euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1					,    3			)}'			)
     print(f'euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3					,    6			)}'			)
     print(f'euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6					,    3			)}'			)


if __name__ == "__main__":
 main()