






"""simple docstring"""
from __future__ import annotations

def 				snake_case      (   A__	,A__						):
			UpperCAmelCase_     ,	UpperCAmelCase_     : List[Any]			     =					set(A__						), [start]

			while stack:
						UpperCAmelCase_     : Union[str, Any]			     =					stack.pop()
						explored.add(A__						)
						# Differences from BFS:
						# 1) pop last element instead of first one
						# 2) add adjacent elements to stack without exploring them
						for adj in reversed(graph[v]						):
									if adj not in explored:
												stack.append(A__						)
			return explored


lowerCamelCase_					=      {
    'A': ['B', 'C', 'D'],
    'B': ['A', 'D', 'E'],
    'C': ['A', 'F'],
    'D': ['B', 'D'],
    'E': ['B', 'F'],
    'F': ['C', 'E', 'G'],
    'G': ['F'],
}

if __name__ == "__main__":
			import doctest

			doctest.testmod()
			print(depth_first_search(G, '''A'''))




"""simple docstring"""






def   a_						(					lowerCamelCase       ):
				return str(lowerCamelCase       ) == str(lowerCamelCase       )[::-1]



def   a_						(					lowerCamelCase       ):
				return int(lowerCamelCase       ) + int(str(lowerCamelCase       )[::-1]       )



def   a_						(					lowerCamelCase = 1_0_0_0_0       ):
				UpperCAmelCase__             =							[]
				for num in range(1					,			lowerCamelCase       ):
								UpperCAmelCase__             =							0
								UpperCAmelCase__             =							num
								while iterations < 5_0:
												UpperCAmelCase__             =							sum_reverse(lowerCamelCase       )
												iterations += 1
												if is_palindrome(lowerCamelCase       ):
																break
								else:
												lychrel_nums.append(lowerCamelCase       )
				return len(lowerCamelCase       )


if __name__ == "__main__":
						print(F"""{solution() = }""")



