



'''simple docstring'''







def  SCREAMING_SNAKE_CASE__ (				SCREAMING_SNAKE_CASE     ):
		if not isinstance(SCREAMING_SNAKE_CASE ,		SCREAMING_SNAKE_CASE     ):
				raise TypeError('recursive_lucas_number accepts only integer arguments.'     )
		if n_th_number == 0:
				return 2
		if n_th_number == 1:
				return 1

		return recursive_lucas_number(n_th_number - 1     ) + recursive_lucas_number(
		    n_th_number - 2     )







def  SCREAMING_SNAKE_CASE__ (				SCREAMING_SNAKE_CASE     ):
		if not isinstance(SCREAMING_SNAKE_CASE ,		SCREAMING_SNAKE_CASE     ):
				raise TypeError('dynamic_lucas_number accepts only integer arguments.'     )
		SCREAMING_SNAKE_CASE_						,		SCREAMING_SNAKE_CASE_						:Any										=      2, 1
		for _ in range(SCREAMING_SNAKE_CASE     ):
				SCREAMING_SNAKE_CASE_						,		SCREAMING_SNAKE_CASE_						:Optional[int]										=      b, a + b
		return a


if __name__ == "__main__":
							from doctest import testmod

							testmod()
							SCREAMING_SNAKE_CASE__     : Union[str, Any]				=   int(input("""Enter the number of terms in lucas series:\n""").strip())
							print("""Using recursive function to calculate lucas series:""")
							print(""" """.join(str(recursive_lucas_number(i)) for i in range(n)))
							print("""\nUsing dynamic function to calculate lucas series:""")
							print(""" """.join(str(dynamic_lucas_number(i)) for i in range(n)))






"""simple docstring"""





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

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

def 		lowerCAmelCase				(			lowerCamelCase   ,      lowerCamelCase   ,      lowerCamelCase		):
						'''simple docstring'''


						snake_case__							:       Any				      =       True
						snake_case__							:       int				      =       []

						for neighbour in graph[vert]:
												if not visited[neighbour]:
																		connected_verts += dfs(lowerCamelCase   ,      lowerCamelCase   ,      lowerCamelCase		)

						return [vert, *connected_verts]

def 		lowerCAmelCase				(			lowerCamelCase		):
						'''simple docstring'''


						snake_case__							:       Optional[int]				      =       len(lowerCamelCase		)
						snake_case__							:       str				      =       graph_size * [False]
						snake_case__							:       List[str]				      =       []

						for i in range(lowerCamelCase		):
												if not visited[i]:
																		snake_case__							:       Dict				      =       dfs(lowerCamelCase   ,      lowerCamelCase   ,      lowerCamelCase		)
																		components_list.append(lowerCamelCase		)

						return components_list


if __name__ == "__main__":
							import doctest

							doctest.testmod()


