





def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__       ,lowerCAmelCase__	):
		lowerCamelCase_  :    Optional[int]   	=			sorted(lowerCAmelCase__       ,key=lambda lowerCAmelCase__	: edge[2]	)

		lowerCamelCase_  :    Union[str, Any]   	=			list(range(lowerCAmelCase__	)	)

		def find_parent(lowerCAmelCase__	):
				if i != parent[i]:
						lowerCamelCase_  :    List[str]   	=			find_parent(parent[i]	)
				return parent[i]

		lowerCamelCase_  :    Any   	=			0
		lowerCamelCase_  :    Union[str, Any]   	=			[]

		for edge in edges:
				lowerCamelCase_  :    str   	=			find_parent(edge[0]	)
				lowerCamelCase_  :    Dict   	=			find_parent(edge[1]	)
				if parent_a != parent_b:
						minimum_spanning_tree_cost += edge[2]
						minimum_spanning_tree.append(lowerCAmelCase__	)
						lowerCamelCase_  :    Dict   	=			parent_b

		return minimum_spanning_tree


if __name__ == "__main__":  # pragma: no cover
		_lowercase					,   _lowercase		:     Any 					=list(map(int, input().strip().split()))
		_lowercase		:     int 					=[]

		for _ in range(num_edges):
				_lowercase					,   _lowercase					,   _lowercase		:     Any 					=(int(x) for x in input().strip().split())
				edges.append((nodea, nodea, cost))

		kruskal(num_nodes, edges)







from __future__ import annotations


def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__	):
		lowerCamelCase_  :    int
		lowerCamelCase_  :    list[str]   	=			list(lowerCAmelCase__	)
		lowerCamelCase_	,			lowerCamelCase_  :    List[str]   	=			_vector[:-1], int(_vector[-1]	)
		lowerCamelCase_  :    list[int]   	=			[int(lowerCAmelCase__	) for digit in __vector]

		vector.reverse()
		for i, digit in enumerate(lowerCAmelCase__	):
				if i & 1 == 0:
						lowerCamelCase_  :    int   	=			digit * 2
						if doubled > 9:
								doubled -= 9
						check_digit += doubled
				else:
						check_digit += digit

		return check_digit % 10 == 0


if __name__ == "__main__":
		import doctest

		doctest.testmod()
		assert is_luhn("""79927398713""")
		assert not is_luhn("""79927398714""")
