




import functools







def SCREAMING_SNAKE_CASE    (	lowercase_			,    lowercase_						)       ->	int:



       """simple docstring"""

       if not isinstance(lowercase_			,    lowercase_						) or not all(isinstance(lowercase_			,    lowercase_						) for day in days						):
              raise ValueError('''The parameter days should be a list of integers'''						)

       if len(lowercase_						) != 3 or not all(isinstance(lowercase_			,    lowercase_						) for cost in costs						):
              raise ValueError('''The parameter costs should be a list of three integers'''						)

       if len(lowercase_						) == 0:
              return 0

       if min(lowercase_						) <= 0:
              raise ValueError('''All days elements should be greater than 0'''						)

       if max(lowercase_						) >= 366:
              raise ValueError('''All days elements should be less than 366'''						)

       A__							=   set(lowercase_						)

       @functools.cache
       def dynamic_programming(lowercase_						) -> int:
              if index > 365:
                     return 0

              if index not in days_set:
                     return dynamic_programming(index + 1						)

              return min(
                  costs[0] + dynamic_programming(index + 1						)			,    costs[1] + dynamic_programming(index + 7						)			,    costs[2] + dynamic_programming(index + 30						)			,    )

       return dynamic_programming(1						)


if __name__ == "__main__":
  import doctest

  doctest.testmod()








def SCREAMING_SNAKE_CASE    (	lowercase_ = 50						)       ->	int:



       """simple docstring"""

       A__							=   [1] * (length + 1)

       for row_length in range(3			,    length + 1						):
              for block_length in range(3			,    row_length + 1						):
                     for block_start in range(row_length - block_length						):
                            ways_number[row_length] += ways_number[
                                row_length - block_start - block_length - 1
                            ]

                     ways_number[row_length] += 1

       return ways_number[length]


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


