#include <bits/stdc++.h>
using namespace std;
int stmp;
const int MAX = 20;
const int INF = 1000000001;
vector<pair<int, int> > G[MAX];
priority_queue<int> Q;
bool vis[MAX];
int n, m, t;
int c;
void solve(int x) {
  if (x == n) {
    Q.push(c);
    if (((int)(Q).size()) > t) Q.pop();
    return;
  }
  solve(x + 1);
  for (__typeof((G[x]).begin()) u = (G[x]).begin(); u != (G[x]).end(); ++u)
    if (!vis[u->first]) {
      vis[u->first] = true;
      c += u->second;
      if (((int)(Q).size()) < t || c < Q.top()) solve(x + 1);
      c -= u->second;
      vis[u->first] = false;
    }
}
int main(int argc, char *argv[]) {
  stmp = scanf("%d %d %d", &n, &m, &t);
  while (m--) {
    int a, b, w;
    stmp = scanf("%d %d %d", &a, &b, &w);
    --a, --b;
    G[a].push_back(make_pair(b, w));
  }
  solve(0);
  printf("%d\n", Q.top());
  return 0;
}
