#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
long long n,m,k,ans;
vector<long long>a[101010];
long long x,y,z,t1,br;
queue<long long>q;

void lies()
{
    scanf("%lld %lld %lld",&n,&m,&k);
    for (long long i=0; i<m; i++)
    {
        scanf("%lld %lld %lld",&x,&y,&z);
        a[x].push_back(y);
        a[x].push_back(z);
    }
}

void xaxa()
{
    q.push(1);
    q.push(0);
    while(q.empty()==0)
    {
        long long v=q.front();
        q.pop();
        long long t=q.front();
        q.pop();
        if (v==n)
        {
            br++;
            ans=max(ans,t);
        }
        if (br==k) return;
        for (long long i=0; i<a[v].size(); i+=2)
        {
            q.push(a[v][i]);
            t1=max(t,a[v][i+1]);
            q.push(t1);
        }

    }

}

int main ()
{
    lies();
    xaxa();
    printf("%lld\n",ans);
    return 0;
}
