




_UpperCAmelCase		:  dict[tuple[int, int, int], int]	=   {}



def 					UpperCAmelCase__     (   lowerCamelCase,	lowerCamelCase,	lowerCamelCase      ):

  # if we are absent twice, or late 3 consecutive days,
  # no further prize strings are possible
  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
  lowercase			:List[Any]							=  (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
  lowercase			:int							=  _calculate(days - 1,	lowerCamelCase,	late + 1      )

  # 2) if we are absent, the "absent" counter increases by 1, and the
  # "late" counter resets to 0
  lowercase			:Optional[Any]							=  _calculate(days - 1,	absent + 1,	0      )

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

  lowercase			:Any							=  state_late + state_absent + state_ontime

  lowercase			:List[Any]							=  prizestrings
  return prizestrings



def 					UpperCAmelCase__     (   lowerCamelCase = 30      ):
  return _calculate(lowerCamelCase,	absent=0,	late=0      )


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









from typing import TYPE_CHECKING

from ....utils import _LazyModule


_UpperCAmelCase		:  Dict	=   {"tokenization_tapex": ["TapexTokenizer"]}


if TYPE_CHECKING:
     from .tokenization_tapex import TapexTokenizer


else:
     import sys

     _UpperCAmelCase		:  Optional[Any]	=   _LazyModule(__name__, globals()["__file__"], _import_structure)



