#include <bits/stdc++.h>
#define PII pair<int,int>
using namespace std;
vector<PII > edges[50010];
int N, M, X, Y, Z, K, sum = 0;
int Prim(int x) {
vector<bool> isVisited(N + 1);
priority_queue<PII, vector<PII >, greater<PII>> heap;
vector<int> ans;
heap.push({0, x});
while (!heap.empty()) {
PII p = heap.top();
heap.pop();
if (!isVisited[p.second]) {
isVisited[p.second] = true;
ans.push_back(p.second);
sum += p.first;
for (auto item: edges[p.second]) {
if (!isVisited[item.first])heap.push({item.second, item.first});
}
}
if (ans.size() == N - K + 1)break;
}
return sum;
}
int main() {
cin >> N >> M >> K;
if (N==K) { cout << 0; return 0;}
for (int i = 0; i < M; ++i) {
cin >> X >> Y >> Z;
edges[X].push_back({Y, Z});
edges[Y].push_back({X, Z});
}
set<int> s;
for (int i = 1; i <= N; ++i) {
s.insert(Prim(N));
}
for (auto item: s) {
if (item != 0) {
cout << item << endl;
return 0;
}
}
}