Minimum spanning tree with Kruskal's algorithm