
"""simple docstring"""
def    _lowerCAmelCase    (     )  ->    List[str]:
  _SCREAMING_SNAKE_CASE   :				Optional[int]							    = [3_1, 2_8, 3_1, 3_0, 3_1, 3_0, 3_1, 3_1, 3_0, 3_1, 3_0, 3_1]

  _SCREAMING_SNAKE_CASE   :				Dict							    = 6
  _SCREAMING_SNAKE_CASE   :				Tuple							    = 1
  _SCREAMING_SNAKE_CASE   :				Optional[int]							    = 1_9_0_1

  _SCREAMING_SNAKE_CASE   :				List[str]							    = 0

  while year < 2_0_0_1:
    day += 7

    if (year % 4 == 0 and year % 1_0_0 != 0) or (year % 4_0_0 == 0):
      if day > days_per_month[month - 1] and month != 2:
        month += 1
        _SCREAMING_SNAKE_CASE   :				Tuple							    = day - days_per_month[month - 2]
      elif day > 2_9 and month == 2:
        month += 1
        _SCREAMING_SNAKE_CASE   :				List[str]							    = day - 2_9
    else:
      if day > days_per_month[month - 1]:
        month += 1
        _SCREAMING_SNAKE_CASE   :				List[Any]							    = day - days_per_month[month - 2]

    if month > 1_2:
      year += 1
      _SCREAMING_SNAKE_CASE   :				str							    = 1

    if year < 2_0_0_1 and day == 1:
      sundays += 1
  return sundays


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





"""simple docstring"""
from typing import List

from .keymap import KEYMAP, get_character





def    _lowerCAmelCase    (     lowerCamelCase__							:							str				)  ->    Optional[int]:

  def decorator(lowerCamelCase__							:							int				):
    _SCREAMING_SNAKE_CASE   :				Optional[int]							    = getattr(lowerCamelCase__,						"handle_key",						[]				)
    handle += [key]
    setattr(lowerCamelCase__,						"handle_key",						lowerCamelCase__				)
    return func

  return decorator





def    _lowerCAmelCase    (     *lowerCamelCase__							:							List[str]				)  ->    Tuple:

  def decorator(lowerCamelCase__							:							Dict				):
    _SCREAMING_SNAKE_CASE   :				List[Any]							    = getattr(lowerCamelCase__,						"handle_key",						[]				)
    handle += keys
    setattr(lowerCamelCase__,						"handle_key",						lowerCamelCase__				)
    return func

  return decorator
class 			UpperCamelCase      (							__SCREAMING_SNAKE_CASE  ):
     def __new__(     cls  ,     snake_case__  ,     snake_case__  ,     snake_case__				):




       """simple docstring"""


       _SCREAMING_SNAKE_CASE   :				Tuple							    = super().__new__(cls  ,     snake_case__  ,     snake_case__  ,     snake_case__				)
       if not hasattr(snake_case__  ,     "key_handler"				):
         setattr(snake_case__  ,     "key_handler"  ,     {}				)
       setattr(snake_case__  ,     "handle_input"  ,     KeyHandler.handle_input				)

       for value in attrs.values():
         _SCREAMING_SNAKE_CASE   :				Union[str, Any]							    = getattr(snake_case__  ,     "handle_key"  ,     []				)
         for key in handled_keys:
           _SCREAMING_SNAKE_CASE   :				Tuple							    = value
       return new_cls




     @staticmethod
     def 				__SCREAMING_SNAKE_CASE							(     cls				):




       """simple docstring"""


       _SCREAMING_SNAKE_CASE   :				Any							    = get_character()
       if char != KEYMAP["undefined"]:
         _SCREAMING_SNAKE_CASE   :				Dict							    = ord(snake_case__				)
       _SCREAMING_SNAKE_CASE   :				Union[str, Any]							    = cls.key_handler.get(snake_case__				)
       if handler:
         _SCREAMING_SNAKE_CASE   :				Optional[int]							    = char
         return handler(cls				)
       else:
         return None





def    _lowerCAmelCase    (     cls							:							List[Any]				)  ->    str:
  return KeyHandler(cls.__name__,						cls.__bases__,						cls.__dict__.copy()				)



