




from itertools import product



def       UpperCAmelCase__  (     lowerCamelCase,			lowerCamelCase   ):
  lowercase    :str      	=						sides_number
  lowercase    :List[Any]      	=						max_face_number * dice_number
  lowercase    :Any      	=						[0] * (max_total + 1)

  lowercase    :int      	=						1
  lowercase    :Tuple      	=						range(lowerCamelCase,			max_face_number + 1   )
  for dice_numbers in product(lowerCamelCase,			repeat=lowerCamelCase   ):
    lowercase    :Any      	=						sum(lowerCamelCase   )
    totals_frequencies[total] += 1

  return totals_frequencies



def       UpperCAmelCase__  (     ):
  lowercase    :int      	=						total_frequency_distribution(
      sides_number=4,			dice_number=9   )
  lowercase    :Dict      	=						total_frequency_distribution(
      sides_number=6,			dice_number=6   )

  lowercase    :str      	=						0
  lowercase    :Dict      	=						9
  lowercase    :Union[str, Any]      	=						4 * 9
  lowercase    :List[Any]      	=						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]   )

  lowercase    :Optional[int]      	=						(4**9) * (6**6)
  lowercase    :List[str]      	=						peter_wins_count / total_games_number

  lowercase    :Union[str, Any]      	=						round(lowerCamelCase,			ndigits=7   )

  return rounded_peter_win_probability


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









def       UpperCAmelCase__  (     lowerCamelCase,			lowerCamelCase   ):
  return int((input_a, input_a).count(0   ) != 0   )



def       UpperCAmelCase__  (     ):
  assert nand_gate(0,			0   ) == 1
  assert nand_gate(0,			1   ) == 1
  assert nand_gate(1,			0   ) == 1
  assert nand_gate(1,			1   ) == 0


if __name__ == "__main__":
     print(nand_gate(0, 0))
     print(nand_gate(0, 1))
     print(nand_gate(1, 0))
     print(nand_gate(1, 1))



