






'''simple docstring'''



from __future__ import annotations

from collections.abc import Callable

__UpperCamelCase   :							Optional[int]         =   list[list[float | int]]



def  __UpperCAmelCase						(					SCREAMING_SNAKE_CASE__:						Matrix,       SCREAMING_SNAKE_CASE__:						Matrix     )	->      Matrix:

   """simple docstring"""
   __a					  =     len(SCREAMING_SNAKE_CASE__     )
   __a					  =     [[0 for _ in range(size + 1     )] for _ in range(SCREAMING_SNAKE_CASE__     )]
   __a					  =     42
   __a					  =     42
   __a					  =     42
   __a					  =     42
   __a					  =     42
   __a					  =     42

   for row in range(SCREAMING_SNAKE_CASE__     ):
      for col in range(SCREAMING_SNAKE_CASE__     ):
         __a					  =     matrix[row][col]

      __a					  =     vector[row][0]

   __a					  =     0
   __a					  =     0
   while row < size and col < size:
      # pivoting
      __a					  =     max((abs(augmented[rowa][col]     ), rowa) for rowa in range(SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__     )     )[
          1
      ]
      if augmented[pivot_row][col] == 0:
         col += 1
         continue
      else:
         __a  ,      __a					  =     augmented[pivot_row], augmented[row]

      for rowa in range(row + 1,       SCREAMING_SNAKE_CASE__     ):
         __a					  =     augmented[rowa][col] / augmented[row][col]
         __a					  =     0
         for cola in range(col + 1,       size + 1     ):
            augmented[rowa][cola] -= augmented[row][cola] * ratio

      row += 1
      col += 1

   # back substitution
   for col in range(1,       SCREAMING_SNAKE_CASE__     ):
      for row in range(SCREAMING_SNAKE_CASE__     ):
         __a					  =     augmented[row][col] / augmented[col][col]
         for cola in range(SCREAMING_SNAKE_CASE__,       size + 1     ):
            augmented[row][cola] -= augmented[col][cola] * ratio

    # round to get rid of numbers like 2.000000000000004
   return [
       [round(augmented[row][size] / augmented[row][row],       10     )] for row in range(SCREAMING_SNAKE_CASE__     )
   ]



def  __UpperCAmelCase						(					SCREAMING_SNAKE_CASE__:						list[int]     )	->      Callable[[int], int]:

   """simple docstring"""
   __a					  =     len(SCREAMING_SNAKE_CASE__     )
   __a					  =     [[0 for _ in range(SCREAMING_SNAKE_CASE__     )] for _ in range(SCREAMING_SNAKE_CASE__     )]
   __a					  =     [[0] for _ in range(SCREAMING_SNAKE_CASE__     )]
   __a					  =     42
   __a					  =     42
   __a					  =     42
   __a					  =     42

   for x_val, y_val in enumerate(SCREAMING_SNAKE_CASE__     ):
      for col in range(SCREAMING_SNAKE_CASE__     ):
         __a					  =     (x_val + 1) ** (size - col - 1)
      __a					  =     y_val

   __a					  =     solve(SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__     )

   def interpolated_func(SCREAMING_SNAKE_CASE__:						int     ) -> int:
      return sum(
          round(coeffs[x_val][0]     ) * (var ** (size - x_val - 1))
          for x_val in range(SCREAMING_SNAKE_CASE__     )     )

   return interpolated_func



def  __UpperCAmelCase						(					SCREAMING_SNAKE_CASE__:						int     )	->      int:

   """simple docstring"""
   return (
       1
       - variable
       + variable**2
       - variable**3
       + variable**4
       - variable**5
       + variable**6
       - variable**7
       + variable**8
       - variable**9
       + variable**10
   )



def  __UpperCAmelCase						(					SCREAMING_SNAKE_CASE__:						Callable[[int], int] = question_function,       SCREAMING_SNAKE_CASE__:						int = 10     )	->      int:

   """simple docstring"""
   __a					  =     [func(SCREAMING_SNAKE_CASE__     ) for x_val in range(1,       order + 1     )]

   __a					  =     [
       interpolate(data_points[:max_coeff]     ) for max_coeff in range(1,       order + 1     )
   ]

   __a					  =     0
   __a					  =     42
   __a					  =     42

   for poly in polynomials:
      __a					  =     1
      while func(SCREAMING_SNAKE_CASE__     ) == poly(SCREAMING_SNAKE_CASE__     ):
         x_val += 1

      ret += poly(SCREAMING_SNAKE_CASE__     )

   return ret


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







'''simple docstring'''



import sys

__UpperCamelCase   :							List[str]         =   (
    """73167176531330624919225119674426574742355349194934"""
    """96983520312774506326239578318016984801869478851843"""
    """85861560789112949495459501737958331952853208805511"""
    """12540698747158523863050715693290963295227443043557"""
    """66896648950445244523161731856403098711121722383113"""
    """62229893423380308135336276614282806444486645238749"""
    """30358907296290491560440772390713810515859307960866"""
    """70172427121883998797908792274921901699720888093776"""
    """65727333001053367881220235421809751254540594752243"""
    """52584907711670556013604839586446706324415722155397"""
    """53697817977846174064955149290862569321978468622482"""
    """83972241375657056057490261407972968652414535100474"""
    """82166370484403199890008895243450658541227588666881"""
    """16427171479924442928230863465674813919123162824586"""
    """17866458359124566529476545682848912883142607690042"""
    """24219022671055626321111109370544217506941658960408"""
    """07198403850962455444362981230987879927244284909188"""
    """84580156166097919133875499200524063689912560717606"""
    """05886116467109405077541002256983155200055935729725"""
    """71636269561882670428252483600823257530420752963450"""
)



def  __UpperCAmelCase						(					SCREAMING_SNAKE_CASE__:						str = N     )	->      int:

   """simple docstring"""
   __a					  =     -sys.maxsize - 1
   for i in range(len(SCREAMING_SNAKE_CASE__     ) - 12     ):
      __a					  =     1
      for j in range(13     ):
         product *= int(n[i + j]     )
      if product > largest_product:
         __a					  =     product
   return largest_product


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