output_description: Print the sum of the weights of the Minimum Spanning Tree.
input_description: |V| |E|
      s0 t0 w0
      s1 t1 w1
      :
      s|E|-1 t|E|-1 w|E|-1
      
  
  , where |V| is the number of vertices and |E| is the number of edges in the
  graph. The graph vertices are named with the numbers 0, 1,..., |V|-1
  respectively.
  
  si and ti represent source and target verticess of i-th edge (undirected) and
  wi represents the weight of the i-th edge.
attempt: class UnionFind:
      def __init__(self, num):
          self.parent = [i for i in range(num + 1)]
  
      def find(self, node):
          if self.parent[node] == node:
              return node
          self.parent[node] = self.find(self.parent[node])
          return self.parent[node]
  
      def union(self, node1, node2):
          node1 = self.find(node1)
          node2 = self.find(node2)
          if node1 == node2:
              return
          if self.parent[node1] > self.parent[node2]:
              node1, node2 = node2, node1
          self.parent[node2] = node1
          return
  
      def same(self, node1, node2):
          return self.find(node1) == self.find(node2)
  
  
  # edges is array which consists of [cost, frm, to] elements
  def kruskal(vertex_num, edges):
      ans = 0
      uf = UnionFind(vertex_num)
      # sort edges in cost ascending order
      edges.sort()
      for edge in edges:
          cost, frm, to = edge
          if uf.same(frm, to) is False:
              uf.union(frm, to)
              ans += cost
      return ans
  
  
  v, e = map(int, input().split())
  edges = []
  for _ in range(e):
      s, t, w = map(int, input().split())
      edges.append([w, s, t])
  
  print(kruskal(v, edges))
  
problem_description: Minimum Spanning Tree
  
    
  
  Find the sum of weights of edges of the Minimum Spanning Tree for a given
  weighted undirected graph G = (V, E).
samples: [{"input": "4 6\n    0 1 2\n    1 2 1\n    2 3 1\n    3 0 1\n    0 2 3\n    1 3 5", "output": "3"}, {"input": "6 9\n    0 1 1\n    0 2 3\n    1 2 1\n    1 3 7\n    2 4 1\n    1 4 3\n    3 4 1\n    3 5 1\n    4 5 6", "output": "5"}]