




"""simple docstring"""






def 							UpperCAmelCase		(		snake_case			:					int = 50    ):
					_lowerCAmelCase:Dict									=  [1] * (length + 1)

					for row_length in range(length + 1    ):
										for tile_length in range(2      ,       5    ):
															for tile_start in range(row_length - tile_length + 1    ):
																				ways_number[row_length] += ways_number[
																				    row_length - tile_start - tile_length
																				]

					return ways_number[length]


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












"""simple docstring"""






def 							UpperCAmelCase		(		snake_case			:					str      ,       snake_case			:					str    ):
					assert x is not None
					assert y is not None

					_lowerCAmelCase:Optional[Any]									=  len(snake_case    )
					_lowerCAmelCase:Tuple									=  len(snake_case    )

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

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

															_lowerCAmelCase:int									=  max(l[i - 1][j]      ,       l[i][j - 1]      ,       l[i - 1][j - 1] + match    )

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

										if l[i][j] == l[i - 1][j - 1] + match:
															if match == 1:
																				_lowerCAmelCase:Any									=  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__":
				UpperCamelCase__						=			'''AGGTAB'''
				UpperCamelCase__						=			'''GXTXAYB'''
				UpperCamelCase__						=			4
				UpperCamelCase__						=			'''GTAB'''

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

				doctest.testmod()






