
"""simple docstring"""






class 			lowercase					:






			def __init__(self  :	Dict			)       ->	List[Any]:





				"""simple docstring"""


				lowerCAmelCase												=  {}






			def 					UpperCAmelCase							(self  :	Union[str, Any]			)       ->	None:





				"""simple docstring"""


				print(self.vertex			)
				for i in self.vertex:
					print(SCREAMING_SNAKE_CASE_      ,''' -> '''      ,''' -> '''.join([str(SCREAMING_SNAKE_CASE_			) for j in self.vertex[i]]			)			)






			def 					UpperCAmelCase							(self  :	Optional[Any]      ,SCREAMING_SNAKE_CASE_  :	int      ,SCREAMING_SNAKE_CASE_  :	int			)       ->	None:





				"""simple docstring"""


				if from_vertex in self.vertex:
					self.vertex[from_vertex].append(SCREAMING_SNAKE_CASE_			)
				else:
					# else make a new vertex
					lowerCAmelCase												=  [to_vertex]






			def 					UpperCAmelCase							(self  :	List[str]			)       ->	None:





				"""simple docstring"""


				lowerCAmelCase												=  [False] * len(self.vertex			)

				# call the recursive helper function
				for i in range(len(self.vertex			)			):
					if not visited[i]:
						self.dfs_recursive(SCREAMING_SNAKE_CASE_      ,SCREAMING_SNAKE_CASE_			)






			def 					UpperCAmelCase							(self  :	Optional[Any]      ,SCREAMING_SNAKE_CASE_  :	int      ,SCREAMING_SNAKE_CASE_  :	list			)       ->	None:





				"""simple docstring"""


				lowerCAmelCase												=  True

				print(SCREAMING_SNAKE_CASE_      ,end=''' '''			)

				# Recur for all the vertices that are adjacent to this node
				for i in self.vertex:
					if not visited[i]:
						self.dfs_recursive(SCREAMING_SNAKE_CASE_      ,SCREAMING_SNAKE_CASE_			)


if __name__ == "__main__":
					UpperCAmelCase        =				Graph()
					g.add_edge(0, 1)
					g.add_edge(0, 2)
					g.add_edge(1, 2)
					g.add_edge(2, 0)
					g.add_edge(2, 3)
					g.add_edge(3, 3)

					g.print_graph()
					print("""DFS:""")
					g.dfs()

					# OUTPUT:
					# 0  ->  1 -> 2
					# 1  ->  2
					# 2  ->  0 -> 3
					# 3  ->  3
					# DFS:
					#  0 1 2 3




"""simple docstring"""






UpperCAmelCase        =				8.3_144_598




def __magic_name__	(				_lowerCamelCase:		float,					_lowerCamelCase:		float			)					->						float:

	'''simple docstring'''




	if temperature < 0:
		raise Exception('''Temperature cannot be less than 0 K'''			)
	if molar_mass <= 0:
		raise Exception('''Molar mass cannot be less than or equal to 0 kg/mol'''			)
	else:
		return (3 * UNIVERSAL_GAS_CONSTANT * temperature / molar_mass) ** 0.5


if __name__ == "__main__":
					import doctest

					# run doctest
					doctest.testmod()

					# example
					UpperCAmelCase        =				3_0_0
					UpperCAmelCase        =				2_8
					UpperCAmelCase        =				rms_speed_of_molecule(temperature, molar_mass)
					print(f"""Vrms of Nitrogen gas at 300 K is {vrms} m/s""")


