#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#define MAXN 10042
using namespace std;

vector< pair <long long, long long> > vec[MAXN];
long long k, ans[MAXN], blq, n, m;

void dfs (long long s, long long maxk){
    if (s==n-1) {ans[blq++] = maxk; return; }
    for (int i=0; i<vec[s].size (); i++){
        if (vec[s][i].second >maxk) dfs (vec[s][i].first, vec[s][i].second);
        else dfs (vec[s][i].first, maxk);
    }
}

int main (){
    long long d, a, b;
    scanf ("%lld %lld %lld",&n,&m, &k);
    for (int i=0; i<m; i++){
        scanf("%lld %lld %lld",&a, &b, &d);
        a--; b--;
        vec[a].push_back (make_pair (b, d));
    }
    dfs (0, 0);
    sort (ans, ans+blq);
    printf("%lld\n",ans[k-1]);
    return 0;
}
/*
5 6 2
1 2 2
1 3 3
2 5 3
3 5 2
1 4 1
4 5 4
*/
