


from functools import reduce

UpperCamelCase__ =						(
    '''73167176531330624919225119674426574742355349194934'''
    '''96983520312774506326239578318016984801869478851843'''
    '''85861560789112949495459501737958331952853208805511'''
    '''12540698747158523863050715693290963295227443043557'''
    '''66896648950445244523161731856403098711121722383113'''
    '''62229893423380308135336276614282806444486645238749'''
    '''30358907296290491560440772390713810515859307960866'''
    '''70172427121883998797908792274921901699720888093776'''
    '''65727333001053367881220235421809751254540594752243'''
    '''52584907711670556013604839586446706324415722155397'''
    '''53697817977846174064955149290862569321978468622482'''
    '''83972241375657056057490261407972968652414535100474'''
    '''82166370484403199890008895243450658541227588666881'''
    '''16427171479924442928230863465674813919123162824586'''
    '''17866458359124566529476545682848912883142607690042'''
    '''24219022671055626321111109370544217506941658960408'''
    '''07198403850962455444362981230987879927244284909188'''
    '''84580156166097919133875499200524063689912560717606'''
    '''05886116467109405077541002256983155200055935729725'''
    '''71636269561882670428252483600823257530420752963450'''
)






def  UpperCAmelCase__    (    lowercase__ = N   ) ->      int:
						return max(
						    # mypy cannot properly interpret reduce
						    int(reduce(lambda lowercase__						,       lowercase__   : str(int(_lowercase   ) * int(_lowercase   )   )						,       n[i : i + 13]   )   )
						    for i in range(len(_lowercase   ) - 12   )   )


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










import unittest

import numpy as np






def  UpperCAmelCase__    (    lowercase__						,       lowercase__						,       lowercase__						,       lowercase__ = None						,       ) ->      np.ndarray:
						__lowercase					=				np.shape(lowercase__   )
						__lowercase					=				np.shape(lowercase__   )
						__lowercase					=				np.shape(lowercase__   )

						if shape_a[0] != shape_b[0]:
												__lowercase					=				(
												    """Expected the same number of rows for A and B. """
												    F"Instead found A of size {shape_a} and B of size {shape_b}"
												)
												raise ValueError(lowercase__   )

						if shape_b[1] != shape_c[1]:
												__lowercase					=				(
												    """Expected the same number of columns for B and C. """
												    F"Instead found B of size {shape_b} and C of size {shape_c}"
												)
												raise ValueError(lowercase__   )

						__lowercase					=				pseudo_inv
						if a_inv is None:
												try:
																		__lowercase					=				np.linalg.inv(lowercase__   )
												except np.linalg.LinAlgError:
																		raise ValueError(
																		    """Input matrix A is not invertible. Cannot compute Schur complement."""   )

						return mat_c - mat_b.T @ a_inv @ mat_b
class 			_lowerCAmelCase   ( unittest.TestCase			):






			"""simple docstring"""





			def 		snake_case__			(				self	:       Dict   )						->					None:
									"""simple docstring"""







									__lowercase					=				np.array([[1, 2, 1], [2, 1, 2], [3, 2, 4]]   )
									__lowercase					=				np.array([[0, 3], [3, 0], [2, 3]]   )
									__lowercase					=				np.array([[2, 1], [6, 3]]   )

									__lowercase					=				schur_complement(lowercase			,     lowercase			,     lowercase   )

									__lowercase					=				np.block([[a, b], [b.T, c]]   )

									__lowercase					=				np.linalg.det(lowercase   )
									__lowercase					=				np.linalg.det(lowercase   )
									__lowercase					=				np.linalg.det(lowercase   )

									self.assertAlmostEqual(lowercase			,     det_a * det_s   )





			def 		snake_case__			(				self	:       Tuple   )						->					None:
									"""simple docstring"""







									__lowercase					=				np.array([[1, 2, 1], [2, 1, 2], [3, 2, 4]]   )
									__lowercase					=				np.array([[0, 3], [3, 0], [2, 3]]   )
									__lowercase					=				np.array([[2, 1], [6, 3]]   )

									with self.assertRaises(lowercase   ):
															schur_complement(lowercase			,     lowercase			,     lowercase   )







			def 		snake_case__			(				self	:       Tuple   )						->					None:
									"""simple docstring"""







									__lowercase					=				np.array([[1, 2, 1], [2, 1, 2], [3, 2, 4]]   )
									__lowercase					=				np.array([[0, 3], [3, 0], [2, 3]]   )
									__lowercase					=				np.array([[2, 1, 3], [6, 3, 5]]   )

									with self.assertRaises(lowercase   ):
															schur_complement(lowercase			,     lowercase			,     lowercase   )


if __name__ == "__main__":
			import doctest

			doctest.testmod()
			unittest.main()





