
'''simple docstring'''




def 		lowerCAmelCase_				(   snake_case__ = 50						):




    '''simple docstring'''



    A       :   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() = }''')








'''simple docstring'''

import logging
import os
from typing import List, TextIO, Union

from conllu import parse_incr
from utils_ner import InputExample, Split, TokenClassificationTask


lowerCamelCase							:   List[Any]  						=	logging.getLogger(__name__)
class   __lowerCAmelCase						(lowercase_     ):





      '''simple docstring'''






      def __init__(self    :    Optional[Any]   ,						UpperCamelCase    :    Any=-1 ):

             '''simple docstring'''







             lowercase__      			= label_idx



      def       UpperCamelCase__		(self    :    Union[str, Any]   ,						UpperCamelCase    :    Optional[Any]   ,						UpperCamelCase    :    Union[Split, str] ):

             '''simple docstring'''







             if isinstance(UpperCamelCase   ,						UpperCamelCase ):
                    lowercase__      			= mode.value
             lowercase__      			= os.path.join(UpperCamelCase   ,						f"{mode}.txt" )
             lowercase__      			= 1
             lowercase__      			= []
             with open(UpperCamelCase   ,						encoding='''utf-8''' ) as f:
                    lowercase__      			= []
                    lowercase__      			= []
                    for line in f:
                           if line.startswith('''-DOCSTART-''' ) or line == "" or line == "\n":
                                  if words:
                                         examples.append(InputExample(guid=f"{mode}-{guid_index}"   ,						words=UpperCamelCase   ,						labels=UpperCamelCase ) )
                                         guid_index += 1
                                         lowercase__      			= []
                                         lowercase__      			= []
                           else:
                                  lowercase__      			= line.split(''' ''' )
                                  words.append(splits[0] )
                                  if len(UpperCamelCase ) > 1:
                                         labels.append(splits[self.label_idx].replace('''\n'''   ,						'''''' ) )
                                  else:
                                         # Examples could have no label for mode = "test"
                                         labels.append('''O''' )
                    if words:
                           examples.append(InputExample(guid=f"{mode}-{guid_index}"   ,						words=UpperCamelCase   ,						labels=UpperCamelCase ) )
             return examples



      def       UpperCamelCase__		(self    :    Optional[int]   ,						UpperCamelCase    :    TextIO   ,						UpperCamelCase    :    TextIO   ,						UpperCamelCase    :    List ):

             '''simple docstring'''







             lowercase__      			= 0
             for line in test_input_reader:
                    if line.startswith('''-DOCSTART-''' ) or line == "" or line == "\n":
                           writer.write(UpperCamelCase )
                           if not preds_list[example_id]:
                                  example_id += 1
                    elif preds_list[example_id]:
                           lowercase__      			= line.split()[0] + ''' ''' + preds_list[example_id].pop(0 ) + '''\n'''
                           writer.write(UpperCamelCase )
                    else:
                           logger.warning('''Maximum sequence length exceeded: No prediction for \'%s\'.'''   ,						line.split()[0] )






      def       UpperCamelCase__		(self    :    Union[str, Any]   ,						UpperCamelCase    :    str ):

             '''simple docstring'''







             if path:
                    with open(UpperCamelCase   ,						'''r''' ) as f:
                           lowercase__      			= f.read().splitlines()
                    if "O" not in labels:
                           lowercase__      			= ['''O'''] + labels
                    return labels
             else:
                    return ["O", "B-MISC", "I-MISC", "B-PER", "I-PER", "B-ORG", "I-ORG", "B-LOC", "I-LOC"]






class   __lowerCAmelCase						(lowercase_     ):





      '''simple docstring'''






      def __init__(self    :    List[Any] ):

             '''simple docstring'''







             super().__init__(label_idx=-2 )






      def       UpperCamelCase__		(self    :    List[Any]   ,						UpperCamelCase    :    str ):

             '''simple docstring'''







             if path:
                    with open(UpperCamelCase   ,						'''r''' ) as f:
                           lowercase__      			= f.read().splitlines()
                    if "O" not in labels:
                           lowercase__      			= ['''O'''] + labels
                    return labels
             else:
                    return [
                        "O",
                        "B-ADVP",
                        "B-INTJ",
                        "B-LST",
                        "B-PRT",
                        "B-NP",
                        "B-SBAR",
                        "B-VP",
                        "B-ADJP",
                        "B-CONJP",
                        "B-PP",
                        "I-ADVP",
                        "I-INTJ",
                        "I-LST",
                        "I-PRT",
                        "I-NP",
                        "I-SBAR",
                        "I-VP",
                        "I-ADJP",
                        "I-CONJP",
                        "I-PP",
                    ]






class   __lowerCAmelCase						(lowercase_     ):





      '''simple docstring'''






      def       UpperCamelCase__		(self    :    Tuple   ,						UpperCamelCase    :    int   ,						UpperCamelCase    :    Union[Split, str] ):

             '''simple docstring'''







             if isinstance(UpperCamelCase   ,						UpperCamelCase ):
                    lowercase__      			= mode.value
             lowercase__      			= os.path.join(UpperCamelCase   ,						f"{mode}.txt" )
             lowercase__      			= 1
             lowercase__      			= []

             with open(UpperCamelCase   ,						encoding='''utf-8''' ) as f:
                    for sentence in parse_incr(UpperCamelCase ):
                           lowercase__      			= []
                           lowercase__      			= []
                           for token in sentence:
                                  words.append(token['''form'''] )
                                  labels.append(token['''upos'''] )
                           assert len(UpperCamelCase ) == len(UpperCamelCase )
                           if words:
                                  examples.append(InputExample(guid=f"{mode}-{guid_index}"   ,						words=UpperCamelCase   ,						labels=UpperCamelCase ) )
                                  guid_index += 1
             return examples



      def       UpperCamelCase__		(self    :    Tuple   ,						UpperCamelCase    :    TextIO   ,						UpperCamelCase    :    TextIO   ,						UpperCamelCase    :    List ):

             '''simple docstring'''







             lowercase__      			= 0
             for sentence in parse_incr(UpperCamelCase ):
                    lowercase__      			= preds_list[example_id]
                    lowercase__      			= ''''''
                    for token in sentence:
                           out += f"{token['form']} ({token['upos']}|{s_p.pop(0 )}) "
                    out += "\n"
                    writer.write(UpperCamelCase )
                    example_id += 1






      def       UpperCamelCase__		(self    :    Union[str, Any]   ,						UpperCamelCase    :    str ):

             '''simple docstring'''







             if path:
                    with open(UpperCamelCase   ,						'''r''' ) as f:
                           return f.read().splitlines()
             else:
                    return [
                        "ADJ",
                        "ADP",
                        "ADV",
                        "AUX",
                        "CCONJ",
                        "DET",
                        "INTJ",
                        "NOUN",
                        "NUM",
                        "PART",
                        "PRON",
                        "PROPN",
                        "PUNCT",
                        "SCONJ",
                        "SYM",
                        "VERB",
                        "X",
                    ]




