




def     lowercase		(  _lowerCAmelCase = 50   ):
  UpperCAmelCase__         = [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"""
import unittest

from transformers import is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow, torch_device


if is_torch_available():
    from transformers import AutoModelForSeqaSeqLM, AutoTokenizer

@require_torch
@require_sentencepiece
@require_tokenizers
class       lowerCamelCase	(       unittest.TestCase   ):


  '''simple docstring'''







  @slow
  def  _a      (self	):


        """simple docstring"""

        UpperCAmelCase__			:							Dict							=    AutoModelForSeqaSeqLM.from_pretrained("""google/mt5-small"""							,       return_dict=_lowerCamelCase	).to(_lowerCamelCase	)
        UpperCAmelCase__			:							Optional[Any]							=    AutoTokenizer.from_pretrained("""google/mt5-small"""	)

        UpperCAmelCase__			:							Any							=    tokenizer("""Hello there"""							,       return_tensors="""pt"""	).input_ids
        UpperCAmelCase__			:							str							=    tokenizer("""Hi I am"""							,       return_tensors="""pt"""	).input_ids

        UpperCAmelCase__			:							Tuple							=    model(input_ids.to(_lowerCamelCase	)							,       labels=labels.to(_lowerCamelCase	)	).loss
        UpperCAmelCase__			:							Union[str, Any]							=    -(labels.shape[-1] * loss.item())

        UpperCAmelCase__			:							List[str]							=    -84.9_127
        self.assertTrue(abs(mtf_score - EXPECTED_SCORE	) < 1e-4	)

