#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 返回最小的花费代价使得这n户人家连接起来
# @param n int整型 n户人家的村庄
# @param m int整型 m条路
# @param cost int整型二维数组 一维3个参数,表示连接1个村庄到另外1个村庄的花费的代价
# @return int整型
#
import time
class Solution:
    def miniSpanningTree(self, n: int, m: int, cost: List[List[int]]) -> int:
        # write code here
        cost.sort(key=lambda x: x[2], reverse=False)
        
        visit = [0 for i in range(n+1)]
        visit[cost[0][0]] = 1
        visit[cost[0][1]] = 1
        cost_sum = cost[0][2]

        for k in range(1, n-1):
            for c in cost:
                if ((visit[c[0]] == 1 and visit[c[1]] == 0) or (visit[c[0]] == 0 and visit[c[1]] == 1)):
                    cost_sum += c[2]
                    visit[c[0]] = 1
                    visit[c[1]] = 1
                    cost.remove(c)
                    break

        return cost_sum