#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
queue < int > q,qq;
vector < int> v[100005] , vv[100005], sum;
long long n,m,k,a[100005];

long long  bfs(){
 long long i,j,t;
 for(;!q.empty();){
        i=q.front();
        q.pop();
//        t=qq.front();
//        qq.pop();
    for(j=0;j<v[i].size();j++){
     q.push(v[i][j]);
//     qq.push(vv[i][j]);
       t=vv[i][j];
     a[v[i][j]]=max(a[i],t);


//      cout<<i<<" - "<<a[i]<<"  "<<t<<endl;
 //    cout<<v[i][j]<<" "<<a[v[i][j]]<<endl;
     }

   if(a[n]>0){
   sum.push_back(a[n]);
   a[n]=0;
   }
   }
return 0;
}


long long i,x,y,t;
int main(){
cin>>n>>m>>k;
  for(i=1;i<=m;i++){
    cin>>x>>y>>t;
    v[x].push_back(y);
    vv[x].push_back(t);
  }
  a[1]=0;
  q.push(1);
  qq.push(0);
  bfs();

  sort(sum.begin(),sum.end());

   cout<<sum[k-1]<<endl;


return 0;
}
/*
5 6 2
1 2 2
1 3 3
2 5 3
3 5 2
1 4 1
4 5 4


   for(i=0;i<sum.size();i++){
    cout<<sum[i]<<" ";
   }
  cout<<endl;


    for(i=1;i<=n;i++){
        cout<<i<<" - "<<a[i]<<endl;
    }

    if(vv[i][j]>a[i]){a[v[i][j]]=vv[i][j];}
    if(vv[i][j]<=a[i]){a[v[i][j]]=a[i];}
//     a[v[i][j]]= max( a[i] , vv[i][j]);

*/
