





"""simple docstring"""





_UpperCamelCase							=      {0: [2, 3], 1: [0], 2: [1], 3: [4], 4: []}

_UpperCamelCase							=      {0: [1, 2, 3], 1: [2], 2: [0], 3: [4], 4: [5], 5: [3]}



def 				lowerCAmelCase_			(      SCREAMING_SNAKE_CASE       :							dict[int, list[int]]    ,						SCREAMING_SNAKE_CASE       :							int    ,						SCREAMING_SNAKE_CASE       :							list[bool]   ):


							'''simple docstring'''







							__lowerCamelCase      :      Optional[Any]         =True
							__lowerCamelCase      :      Optional[int]         =[]

							for neighbour in graph[vert]:
														if not visited[neighbour]:
																					order += topology_sort(SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE   )

							order.append(SCREAMING_SNAKE_CASE   )

							return order



def 				lowerCAmelCase_			(      SCREAMING_SNAKE_CASE       :							dict[int, list[int]]    ,						SCREAMING_SNAKE_CASE       :							int    ,						SCREAMING_SNAKE_CASE       :							list[bool]   ):


							'''simple docstring'''







							__lowerCamelCase      :      str         =True
							__lowerCamelCase      :      Optional[int]         =[vert]

							for neighbour in reversed_graph[vert]:
														if not visited[neighbour]:
																					component += find_components(SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE   )

							return component



def 				lowerCAmelCase_			(      SCREAMING_SNAKE_CASE       :							dict[int, list[int]]   ):


							'''simple docstring'''







							__lowerCamelCase      :      List[Any]         =len(SCREAMING_SNAKE_CASE   ) * [False]
							__lowerCamelCase      :      dict[int, list[int]]         ={vert: [] for vert in range(len(SCREAMING_SNAKE_CASE   )   )}

							for vert, neighbours in graph.items():
														for neighbour in neighbours:
																					reversed_graph[neighbour].append(SCREAMING_SNAKE_CASE   )

							__lowerCamelCase      :      List[Any]         =[]
							for i, was_visited in enumerate(SCREAMING_SNAKE_CASE   ):
														if not was_visited:
																					order += topology_sort(SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE   )

							__lowerCamelCase      :      Dict         =[]
							__lowerCamelCase      :      Tuple         =len(SCREAMING_SNAKE_CASE   ) * [False]

							for i in range(len(SCREAMING_SNAKE_CASE   )   ):
														__lowerCamelCase      :      Union[str, Any]         =order[len(SCREAMING_SNAKE_CASE   ) - i - 1]
														if not visited[vert]:
																					__lowerCamelCase      :      Dict         =find_components(SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE    ,						SCREAMING_SNAKE_CASE   )
																					components_list.append(SCREAMING_SNAKE_CASE   )

							return components_list











"""simple docstring"""





import math
from datetime import datetime, timedelta



def 				lowerCAmelCase_			(      SCREAMING_SNAKE_CASE       :							int   ):


							'''simple docstring'''







							__lowerCamelCase      :      Any         =year % 19
							__lowerCamelCase      :      Optional[Any]         =year % 4
							__lowerCamelCase      :      Tuple         =year % 7
							__lowerCamelCase      :      Optional[int]         =math.floor(year / 100   )
							__lowerCamelCase      :      List[str]         =math.floor((13 + 8 * leap_day_inhibits) / 25   )
							__lowerCamelCase      :      Any         =leap_day_inhibits / 4
							__lowerCamelCase      :      Optional[Any]         =(
							    15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
							) % 30
							__lowerCamelCase      :      Optional[Any]         =(4 + leap_day_inhibits - leap_day_reinstall_number) % 7

							# days to be added to March 21
							__lowerCamelCase      :      Any         =(19 * metonic_cycle + secular_moon_shift) % 30

							# PHM -> Paschal Full Moon
							__lowerCamelCase      :      str         =(
							    2 * julian_leap_year
							    + 4 * non_leap_year
							    + 6 * days_to_add
							    + century_starting_point
							) % 7

							if days_to_add == 29 and days_from_phm_to_sunday == 6:
														return datetime(SCREAMING_SNAKE_CASE    ,						4    ,						19   )
							elif days_to_add == 28 and days_from_phm_to_sunday == 6:
														return datetime(SCREAMING_SNAKE_CASE    ,						4    ,						18   )
							else:
														return datetime(SCREAMING_SNAKE_CASE    ,						3    ,						22   ) + timedelta(
														    days=int(days_to_add + days_from_phm_to_sunday   )   )


if __name__ == "__main__":
							for year in (1994, 2000, 2010, 2021, 2023):
														_UpperCamelCase							=      'will be' if year > datetime.now().year else 'was'
														print(f'''Easter in {year} {tense} {gauss_easter(year)}''')




