



"""simple docstring"""







from functools import lru_cache



def      __UpperCAmelCase      (    __lowerCamelCase	)							->      set:
		lowercase__   :    Optional[Any]				=			2
		lowercase__   :    Any				=			set()
		while i * i <= n:
				if n % i:
						i += 1
				else:
						n //= i
						factors.add(__lowerCamelCase	)
		if n > 1:
				factors.add(__lowerCamelCase	)
		return factors



@lru_cache
def      __UpperCAmelCase      (    __lowerCamelCase	)							->      int:
		return len(unique_prime_factors(__lowerCamelCase	)	)



def      __UpperCAmelCase      (    __lowerCamelCase	)							->      bool:
		return len(set(__lowerCamelCase	)	) in (0, 1)



def      __UpperCAmelCase      (    __lowerCamelCase	)							->      list:
		lowercase__   :    str				=			2

		while True:
				# Increment each value of a generated range
				lowercase__   :    Any				=			[base + i for i in range(__lowerCamelCase	)]

				# Run elements through out unique_prime_factors function
				# Append our target number to the end.
				lowercase__   :    List[Any]				=			[upf_len(__lowerCamelCase	) for x in group]
				checker.append(__lowerCamelCase	)

				# If all numbers in the list are equal, return the group variable.
				if equality(__lowerCamelCase	):
						return group

				# Increment our base variable by 1
				base += 1



def      __UpperCAmelCase      (    __lowerCamelCase = 4	)							->      int:
		lowercase__   :    Dict				=			run(__lowerCamelCase	)
		return results[0] if len(__lowerCamelCase	) else None


if __name__ == "__main__":
							print(solution())





"""simple docstring"""







def      __UpperCAmelCase      (    __lowerCamelCase = 50	)							->      int:
		lowercase__   :    int				=			[[0] * 3 for _ in range(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	):
								different_colour_ways_number[row_length][tile_length - 2] += (
								    different_colour_ways_number[row_length - tile_start - tile_length][
								        tile_length - 2
								    ]
								    + 1
								)

		return sum(different_colour_ways_number[length]	)


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