output_description: Print the maximum possible amount of the allowance.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      A B C
attempt: N, M = map(int, input().split())
  
  mod = 1000000007
  
  f = [] # 素因数分解(指数部のみ)
  
  for p in range(2, M): # 素因数分解
      e = 0
      while M%p == 0:
          e += 1
          M /= p
      
      if e>0:
          f.append(e)
      
      if M == 1:
          break
  
  def pw(a, e):
      if e == 1:
          return a
      p = pw(a, e // 2)
      if e%2 == 1:
          return p * p % mod a % mod
      else:
          return p * p % mod
  
  # fact, inv の計算
  fact = [1] * 100040
  inv = [1] * 100040
  for k in range(1, 100040):
      fact[k] = fact[k-1] * k % mod
      inv[k] = pw(fact[k], mod-2)
  
  ans = 1
  for e in f:
      ans = ans * fact[e+N-1] % mod * inv[e] % mod * inv[N-1] % mod # N_H_e (重複組合せ)
  
  print(ans)
  
problem_description: Statement
  
  You have decided to give an allowance to your child depending on the outcome
  of the game that he will play now.
  
  The game is played as follows:
  
    * There are three "integer panels", each with a digit between 1 and 9 (inclusive) printed on it, and one "operator panel" with a `+` printed on it.
    * The player should construct a formula of the form X + Y, by arranging the four panels from left to right. (The operator panel should not be placed at either end of the formula.)
    * Then, the amount of the allowance will be equal to the resulting value of the formula.
  
  Given the values A, B and C printed on the integer panels used in the game,
  find the maximum possible amount of the allowance.
samples: [{"input": "1 5 2", "output": "53\n    \n\nThe amount of the allowance will be 53 when the panels are arranged as `52+1`,\nand this is the maximum possible amount.\n\n* * *"}, {"input": "9 9 9", "output": "108\n    \n\n* * *"}, {"input": "6 6 7", "output": "82"}]