using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
static int prims(int n, int[][] edges, int start)
HashSet<int> usedNodes = new HashSet<int>();
var sortedEdges = edges.OrderBy(p => p[2]).ToArray();
for (int i = 0; i < sortedEdges.Count(); i++)
if (numberOfEdges == n - 1) return sum;
if (sortedEdges[i] == null) continue;
if (usedNodes.Contains(sortedEdges[i][0])) numberOfExists++;
if (usedNodes.Contains(sortedEdges[i][1])) numberOfExists++;
sum += sortedEdges[i][2];
usedNodes.Add(sortedEdges[i][0]);
usedNodes.Add(sortedEdges[i][1]);
static void Main(string[] args)
string[] nm = Console.ReadLine().Split(' ');
int n = Convert.ToInt32(nm[0]);
int m = Convert.ToInt32(nm[1]);
int[][] edges = new int[m][];
for (int i = 0; i < m; i++)
edges[i] = Array.ConvertAll(Console.ReadLine().Split(' '), edgesTemp => Convert.ToInt32(edgesTemp));
int start = Convert.ToInt32(Console.ReadLine());
int result = prims(n, edges, start);
Console.WriteLine(result);