


'''simple docstring'''


from ...utils import is_note_seq_available, is_transformers_available, is_torch_available
from ...utils import OptionalDependencyNotAvailable


try:
						if not (is_transformers_available() and is_torch_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ...utils.dummy_torch_and_transformers_objects import *  # noqa F403
else:
						from .notes_encoder import SpectrogramNotesEncoder
						from .continous_encoder import SpectrogramContEncoder
						from .pipeline_spectrogram_diffusion import (
						    SpectrogramContEncoder,
						    SpectrogramDiffusionPipeline,
						    TaFilmDecoder,
						)

try:
						if not (is_transformers_available() and is_torch_available() and is_note_seq_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ...utils.dummy_transformers_and_torch_and_note_seq_objects import *  # noqa F403
else:
						from .midi_utils import MidiProcessor







'''simple docstring'''


def        __lowerCAmelCase       (__lowerCAmelCase = 50      ):
		_UpperCAmelCase						:				Tuple	    =					[[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() = }''')



