#include <bits/stdc++.h>
using namespace std;
const int N = 21, M = 102;
int n, k, t, res;
int idx, w[M], e[M], ne[M], h[N];
bool paired[N];
void add(int a, int b, int c) {
  w[idx] = c, e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
void dfs(int a, int v, int cur) {
  if (cur > v) return;
  if (a > n) {
    ++res;
    return;
  }
  if (res > t) return;
  dfs(a + 1, v, cur);
  for (int i = h[a]; res <= t && ~i; i = ne[i]) {
    int b = e[i];
    if (paired[b]) continue;
    paired[b] = true;
    dfs(a + 1, v, cur + w[i]);
    paired[b] = false;
  }
}
int main() {
  cin >> n >> k >> t;
  memset(h, -1, sizeof h);
  for (int i = 0, a, b, c; i < k; ++i) {
    cin >> a >> b >> c;
    add(a, b, c);
  }
  int lo = 0, hi = min(n, t) * 1000;
  int ppp = 10;
  while (lo < hi) {
    int mid = lo + hi >> 1;
    res = 0;
    dfs(1, mid, 0);
    if (res >= t)
      hi = mid;
    else
      lo = mid + 1;
  }
  cout << lo << endl;
  return 0;
}
