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: n = int(input())
  m = [
      [-1 for i in range(n)] for j in range(n)
  ]  # お隣さんへのコストを保存（この中から最小を探す）
  
  v = set()
  v.add(0)
  
  for i in range(n):  # 隣接の辺のコストを入力
      nums = list(map(int, input().split()))
      for j in range(n):
          m[i][j] = nums[j]
  
  
  def prim_mst(n):
      isVisited = [False] * n
      d = [0] + [2001] * (n - 1)  # TとV-Tのを繋ぐ最小辺の重みを格納する
  
      while True:
          mincost = 2001
          for i in range(n):
              if not (isVisited[i]) and d[i] < mincost:
                  mincost = d[i]
                  u = i
          isVisited[u] = True
  
          if mincost == 2001:  # mincostが2001になったら繰り返し作業終了
              break
  
          for v in range(n):
              if (not isVisited[v]) and (m[u][v] != -1):
                  if m[u][v] < d[v]:
                      d[v] = m[u][v]
      print(sum(d))
  
  
  prim_mst(n)
  
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"}]