#include <iostream>
#include <algorithm>
using namespace std;
int N, br[1024]={0};
long long br2=0;
int mind[64717050]={0};
struct connection {int con, pr;} a[1000][1000];
void recurse(int pos, int din)
{
     if (pos==N) {mind[br2]=din;br2++;return;}
     int din2;
     for (int i=0;i<br[pos];i++)
     {
         din2=din;
         din2=(din2>=a[pos][i].pr)*din2+(din2<a[pos][i].pr)*a[pos][i].pr;
         recurse (a[pos][i].con, din2);
     }
}
int main ()
{
    int M, K, i, x, y, z;
    cin>>N>>M>>K;
    for (i=0;i<M;i++)
    {
        cin>>x>>y>>z;
        a[x][br[x]].con=y;
        a[x][br[x]].pr=z;
        br[x]++;
    }
    recurse(1, 0);
    sort(mind, mind+br2);
    cout<<mind[K-1]<<endl;
    //system ("pause");
    return 0;
}
