#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 2e5 + 5,MaxK=10, INF= 1e18;
long long n,m,k, d[MaxN][MaxK];
vector<pair<long long, long long>> vt[MaxN];
void dijikstra(long long v)
{
priority_queue<tuple<long long, long long, long long>, vector<tuple<long long, long long, long long>>, greater<tuple<long long, long long, long long>>> pq;
pq.push({0,1,0});
while(!pq.empty())
{
long long du= get<0>(pq.top());
long long u = get<1>(pq.top());
long long state= get<2> (pq.top());
pq.pop();
if(du!=d[u][state]) continue;
for (auto x : vt[u])
{
long long v = x.first;
long long weight_v = x.second;
if(d[v][state]>d[u][state]+weight_v)
{
d[v][state]=d[u][state]+weight_v;
pq.push({d[v][state],v,state});
}
if(state<k&&d[v][state+1]>d[u][state])
{
d[v][state+1]=d[u][state];
pq.push({d[v][state+1],v,state+1});
}
}
}
}
void input()
{
cin >> n >> m >> k;
for (long long i=1; i<=m; i++)
{
long long u,v,w;
cin >> u >> v >> w;
vt[u].push_back ({v,w});
vt[v].push_back({u,w});
}
}
void output()
{
for (long long i=1; i<=n; i++)
{
for (long long j=0; j<=k; j++)
{
d[i][j]=INF;
}
}
d[1][0]=0;
dijikstra(1);
long long ans= INF;
for(long long i=0; i<=k; i++)
{
ans=min(d[n][i],ans);
}
if(ans==INF)
{
cout << -1;
return;
}
cout << ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
output();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbG9uZyBsb25nIE1heE4gPSAyZTUgKyA1LE1heEs9MTAsIElORj0gMWUxODsKbG9uZyBsb25nIG4sbSxrLCBkW01heE5dW01heEtdOwp2ZWN0b3I8cGFpcjxsb25nIGxvbmcsIGxvbmcgbG9uZz4+IHZ0W01heE5dOwp2b2lkIGRpamlrc3RyYShsb25nIGxvbmcgdikKewogICAgcHJpb3JpdHlfcXVldWU8dHVwbGU8bG9uZyBsb25nLCBsb25nIGxvbmcsIGxvbmcgbG9uZz4sIHZlY3Rvcjx0dXBsZTxsb25nIGxvbmcsIGxvbmcgbG9uZywgbG9uZyBsb25nPj4sIGdyZWF0ZXI8dHVwbGU8bG9uZyBsb25nLCBsb25nIGxvbmcsIGxvbmcgbG9uZz4+PiBwcTsKICAgIHBxLnB1c2goezAsMSwwfSk7CiAgICB3aGlsZSghcHEuZW1wdHkoKSkKICAgIHsKICAgICAgICBsb25nIGxvbmcgZHU9IGdldDwwPihwcS50b3AoKSk7CiAgICAgICAgbG9uZyBsb25nIHUgPSBnZXQ8MT4ocHEudG9wKCkpOwogICAgICAgIGxvbmcgbG9uZyBzdGF0ZT0gZ2V0PDI+IChwcS50b3AoKSk7CiAgICAgICAgcHEucG9wKCk7CiAgICAgICAgaWYoZHUhPWRbdV1bc3RhdGVdKSBjb250aW51ZTsKICAgICAgICBmb3IgKGF1dG8geCA6IHZ0W3VdKQogICAgICAgIHsKICAgICAgICAgICAgbG9uZyBsb25nIHYgPSB4LmZpcnN0OwogICAgICAgICAgICBsb25nIGxvbmcgd2VpZ2h0X3YgPSB4LnNlY29uZDsKICAgICAgICAgICAgaWYoZFt2XVtzdGF0ZV0+ZFt1XVtzdGF0ZV0rd2VpZ2h0X3YpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRbdl1bc3RhdGVdPWRbdV1bc3RhdGVdK3dlaWdodF92OwogICAgICAgICAgICAgICAgcHEucHVzaCh7ZFt2XVtzdGF0ZV0sdixzdGF0ZX0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKHN0YXRlPGsmJmRbdl1bc3RhdGUrMV0+ZFt1XVtzdGF0ZV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRbdl1bc3RhdGUrMV09ZFt1XVtzdGF0ZV07CiAgICAgICAgICAgICAgICBwcS5wdXNoKHtkW3ZdW3N0YXRlKzFdLHYsc3RhdGUrMX0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CnZvaWQgaW5wdXQoKQp7CiAgICBjaW4gPj4gbiA+PiBtID4+IGs7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW07IGkrKykKICAgIHsKICAgICAgICBsb25nIGxvbmcgdSx2LHc7CiAgICAgICAgY2luID4+IHUgPj4gdiA+PiB3OwogICAgICAgIHZ0W3VdLnB1c2hfYmFjayAoe3Ysd30pOwogICAgICAgIHZ0W3ZdLnB1c2hfYmFjayh7dSx3fSk7CiAgICB9Cn0Kdm9pZCBvdXRwdXQoKQp7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBmb3IgKGxvbmcgbG9uZyBqPTA7IGo8PWs7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGRbaV1bal09SU5GOwogICAgICAgIH0KICAgIH0KICAgIGRbMV1bMF09MDsKICAgIGRpamlrc3RyYSgxKTsKICAgIGxvbmcgbG9uZyBhbnM9IElORjsKICAgIGZvcihsb25nIGxvbmcgaT0wOyBpPD1rOyBpKyspCiAgICB7CiAgICAgICAgYW5zPW1pbihkW25dW2ldLGFucyk7CiAgICB9CiAgICBpZihhbnM9PUlORikKICAgIHsKICAgICAgICBjb3V0IDw8IC0xOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBpbnB1dCgpOwogICAgb3V0cHV0KCk7Cn0KCg==