def 					_snake_case	(  __snake_case  ,     __snake_case						):
					assert x is not None
					assert y is not None

					_UpperCamelCase			     =     len(__snake_case						)
					_UpperCamelCase			     =     len(__snake_case						)

					# declaring the array for storing the dp values
					_UpperCamelCase			     =     [[0] * (n + 1) for _ in range(m + 1						)]  # noqa: E741

					for i in range(1  ,     m + 1						):
										for j in range(1  ,     n + 1						):
															_UpperCamelCase			     =     1 if x[i - 1] == y[j - 1] else 0

															_UpperCamelCase			     =     max(l[i - 1][j]  ,     l[i][j - 1]  ,     l[i - 1][j - 1] + match						)

					_UpperCamelCase			     =     ''''''
					_UpperCamelCase     ,    _UpperCamelCase			     =     m, n
					while i > 0 and j > 0:
										_UpperCamelCase			     =     1 if x[i - 1] == y[j - 1] else 0

										if l[i][j] == l[i - 1][j - 1] + match:
															if match == 1:
																				_UpperCamelCase			     =     x[i - 1] + seq
															i -= 1
															j -= 1
										elif l[i][j] == l[i - 1][j]:
															i -= 1
										else:
															j -= 1

					return l[m][n], seq


if __name__ == "__main__":
					_lowerCAmelCase       =		"AGGTAB"
					_lowerCAmelCase       =		"GXTXAYB"
					_lowerCAmelCase       =		4
					_lowerCAmelCase       =		"GTAB"

					_lowerCAmelCase,				_lowerCAmelCase       =		longest_common_subsequence(a, b)
					print("len =", ln, ", sub-sequence =", subseq)
					import doctest

					doctest.testmod()

def 					_snake_case	(  __snake_case = 100						):
					_UpperCamelCase			     =     (n * (n + 1) // 2) ** 2
					_UpperCamelCase			     =     n * (n + 1) * (2 * n + 1) // 6
					return sum_cubes - sum_squares


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