#include <bits/stdc++.h>
using namespace std;
int n, k, t, w[20][20];
vector<int> g[20];
priority_queue<int> pq;
bool v[20];
void dfs(int x, int total = 0) {
  if (x == n) {
    pq.push(total);
    if (pq.size() > t) pq.pop();
  } else {
    dfs(x + 1, total);
    for (typeof((g[x]).begin()) it = (g[x]).begin(); it != (g[x]).end(); ++it)
      if (!v[*it] && (pq.size() < t || total + w[x][*it] < pq.top())) {
        v[*it] = true;
        dfs(x + 1, total + w[x][*it]);
        v[*it] = false;
      }
  }
}
int main() {
  scanf("%d%d%d", &n, &k, &t);
  for (int i = 0; i < (k); ++i) {
    int u, v, c;
    scanf("%d%d%d", &u, &v, &c);
    --u;
    --v;
    g[u].push_back(v);
    w[u][v] = c;
  }
  dfs(0);
  printf("%d\n", pq.top());
  return 0;
}
