#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;


int n,m,k;

vector < int > ans;

vector < pair < int , int > > v[100007];


void dfs(int vertex, int mx);
void input();
void solve();

int main()
    {
    input();
    solve();
    return 0;
    }


void input()
    {
    scanf("%d%d%d",&n,&m,&k);
    int i;
    int p1,p2,p3;
    for(i=0;i<m;i++)
        {
        scanf("%d%d%d",&p1,&p2,&p3);
        v[p1].push_back(make_pair(p2,p3));
        }
    }

void solve()
    {
    ///printf("here\n");
    dfs(1,0);
    sort(ans.begin(),ans.end());
    printf("%d\n",ans[k-1]);
    }

void dfs(int vertex, int mx)
    {
    if(vertex==n)
        {
        ans.push_back(mx);
        return ;
        }
    int i;
    int sz=v[vertex].size();
    for(i=0;i<sz;i++)
        {
        if(v[vertex][i].second<mx)dfs(v[vertex][i].first,mx);
        else dfs(v[vertex][i].first,v[vertex][i].second);
        }
    return ;
    }



/**
5 6 2
1 2 2
1 3 3
2 5 3
3 5 2
1 4 1
4 5 4
**/
