





'''simple docstring'''







def  _lowerCamelCase				( lowercase						:      int = 50						)	->	int:
				_a								= [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() = }""")




def 				__lowerCamelCase						( UpperCAmelCase_						:		int ,  UpperCAmelCase_						:		int						):




      """simple docstring"""





      while b:
            a							,				a						:Optional[Any] 							=       b, a % b
      return a
def 				__lowerCamelCase						( UpperCAmelCase_						:		int ,  UpperCAmelCase_						:		int						):




      """simple docstring"""





      return a if b == 0 else euclidean_gcd_recursive(UpperCAmelCase_ ,  a % b						)
def 				__lowerCamelCase						( ):




      """simple docstring"""





      print(F'''euclidean_gcd(3, 5) = {euclidean_gcd(3 ,  5						)}'''						)
      print(F'''euclidean_gcd(5, 3) = {euclidean_gcd(5 ,  3						)}'''						)
      print(F'''euclidean_gcd(1, 3) = {euclidean_gcd(1 ,  3						)}'''						)
      print(F'''euclidean_gcd(3, 6) = {euclidean_gcd(3 ,  6						)}'''						)
      print(F'''euclidean_gcd(6, 3) = {euclidean_gcd(6 ,  3						)}'''						)

      print(F'''euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3 ,  5						)}'''						)
      print(F'''euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5 ,  3						)}'''						)
      print(F'''euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1 ,  3						)}'''						)
      print(F'''euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3 ,  6						)}'''						)
      print(F'''euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6 ,  3						)}'''						)


if __name__ == "__main__":
     main()





