from itertools import product




def       __lowerCAmelCase      (						A_   : int						,	A_   : int					)    ->  list[int]:
  __UpperCAmelCase						    =       sides_number
  __UpperCAmelCase						    =       max_face_number * dice_number
  __UpperCAmelCase						    =       [0] * (max_total + 1)

  __UpperCAmelCase						    =       1
  __UpperCAmelCase						    =       range(A_						,	max_face_number + 1					)
  for dice_numbers in product(A_						,	repeat=A_					):
    __UpperCAmelCase						    =       sum(A_					)
    totals_frequencies[total] += 1

  return totals_frequencies




def       __lowerCAmelCase      (						)    ->  float:
  __UpperCAmelCase						    =       total_frequency_distribution(
      sides_number=4						,	dice_number=9					)
  __UpperCAmelCase						    =       total_frequency_distribution(
      sides_number=6						,	dice_number=6					)

  __UpperCAmelCase						    =       0
  __UpperCAmelCase						    =       9
  __UpperCAmelCase						    =       4 * 9
  __UpperCAmelCase						    =       6
  for peter_total in range(A_						,	max_peter_total + 1					):
    peter_wins_count += peter_totals_frequencies[peter_total] * sum(
        colin_totals_frequencies[min_colin_total:peter_total]					)

  __UpperCAmelCase						    =       (4**9) * (6**6)
  __UpperCAmelCase						    =       peter_wins_count / total_games_number

  __UpperCAmelCase						    =       round(A_						,	ndigits=7					)

  return rounded_peter_win_probability


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




import copy
from dataclasses import dataclass
from pathlib import Path
from typing import Dict, Optional, Union


@dataclass
class 			UpperCAmelCase__    :



  """simple docstring"""






  lowerCAmelCase__		:	Optional[Union[str, Path]]    		= None
  lowerCAmelCase__		:	bool    		= False
  lowerCAmelCase__		:	bool    		= False
  lowerCAmelCase__		:	bool    		= False
  lowerCAmelCase__		:	Optional[Dict]    		= None
  lowerCAmelCase__		:	Optional[str]    		= None
  lowerCAmelCase__		:	bool    		= False
  lowerCAmelCase__		:	bool    		= False
  lowerCAmelCase__		:	bool    		= False
  lowerCAmelCase__		:	bool    		= True
  lowerCAmelCase__		:	Optional[int]    		= None
  lowerCAmelCase__		:	int    		= 1
  lowerCAmelCase__		:	Optional[Union[str, bool]]    		= None
  lowerCAmelCase__		:	bool    		= False
  lowerCAmelCase__		:	Optional[Dict]    		= None
  lowerCAmelCase__		:	Optional[str]    		= None






  def 	_UpperCAmelCase				(				self:			Any   ) -> "DownloadConfig":




    '''simple docstring'''




    return self.__class__(**{k: copy.deepcopy(__lowerCAmelCase   ) for k, v in self.__dict__.items()}   )



