






UpperCamelCase 				=	{}

def        __lowerCamelCase			(		snake_case__       ,snake_case__       ,snake_case__		)							->  int:






						"""simple docstring"""





						if late == 3 or absent == 2:
												return 0

						# if we have no days left, and have not failed any other rules,
						# we have a prize string
						if days == 0:
												return 1

						# No easy solution, so now we need to do the recursive calculation

						# First, check if the combination is already in the cache, and
						# if yes, return the stored value from there since we already
						# know the number of possible prize strings from this point on
						_SCREAMING_SNAKE_CASE	      =  (days, absent, late)
						if key in cache:
												return cache[key]

						# now we calculate the three possible ways that can unfold from
						# this point on, depending on our attendance today

						# 1) if we are late (but not absent), the "absent" counter stays as
						# it is, but the "late" counter increases by one
						_SCREAMING_SNAKE_CASE	      =  _calculate(days - 1       ,lowerCAmelCase__       ,late + 1		)

						# 2) if we are absent, the "absent" counter increases by 1, and the
						# "late" counter resets to 0
						_SCREAMING_SNAKE_CASE	      =  _calculate(days - 1       ,absent + 1       ,0		)

						# 3) if we are on time, this resets the "late" counter and keeps the
						# absent counter
						_SCREAMING_SNAKE_CASE	      =  _calculate(days - 1       ,lowerCAmelCase__       ,0		)

						_SCREAMING_SNAKE_CASE	      =  state_late + state_absent + state_ontime

						_SCREAMING_SNAKE_CASE	      =  prizestrings
						return prizestrings

def        __lowerCamelCase			(		snake_case__ = 30		)							->  int:






						"""simple docstring"""





						return _calculate(lowerCAmelCase__       ,absent=0       ,late=0		)


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


"""simple docstring"""






from ..utils import DummyObject, requires_backends





class  _A						(       metaclass=lowerCAmelCase	):
      snake_case__			:   List[str]							  =	['onnx']

      def __init__(						self		,       *__lowerCAmelCase		,       **__lowerCAmelCase						):







            """simple docstring"""



            requires_backends(self		,       ["""onnx"""]						)

      @classmethod
      def 				A__       (						cls		,       *__lowerCAmelCase		,       **__lowerCAmelCase						):







            """simple docstring"""



            requires_backends(cls		,       ["""onnx"""]						)







      @classmethod
      def 				A__       (						cls		,       *__lowerCAmelCase		,       **__lowerCAmelCase						):







            """simple docstring"""



            requires_backends(cls		,       ["""onnx"""]						)



