#include <bits/stdc++.h>
using namespace std;
int n, t, k;
int cost[22][22];
bool used[22];
int numFind;
int anss[200005];
priority_queue<int> pq;
void back(int num, int get) {
  if (num == n) {
    if (numFind >= t) {
      if (!pq.empty() && get < pq.top()) {
        pq.pop();
        pq.push(get);
      }
    } else {
      pq.push(get);
      numFind++;
    }
    return;
  }
  back(num + 1, get);
  for (int i = 0; i < n; i++) {
    if (!used[i] && cost[num][i]) {
      if (numFind < t || get + cost[num][i] < pq.top()) {
        used[i] = true;
        back(num + 1, get + cost[num][i]);
        used[i] = false;
      }
    }
  }
}
int main() {
  cin >> n >> k >> t;
  int tmp1, tmp2;
  for (int i = 0; i < k; i++) {
    cin >> tmp1 >> tmp2;
    cin >> cost[tmp1 - 1][tmp2 - 1];
  }
  back(0, 0);
  int i;
  for (i = 0; i < numFind; i++) {
    anss[i] = pq.top();
    pq.pop();
  }
  cout << anss[t - i] << endl;
  return 0;
}
