#include <bits/stdc++.h>
using namespace std;
const int maxN = 20 + 10;
int n, k, t;
int a[maxN][maxN];
vector<vector<int> > v;
vector<int> s;
void fill(int l) {
  if (l == n) {
    v.push_back(s);
    return;
  }
  for (int i = 0; i <= n; i++) s.push_back(i), fill(l + 1), s.pop_back();
}
int f[maxN];
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> k >> t;
  memset(a, -1, sizeof a);
  for (int i = 0; i < k; i++) {
    int x, y, r;
    cin >> x >> y >> r;
    x--;
    y--;
    a[x][y] = r;
  }
  fill(0);
  vector<int> res;
  for (int i = 0; i < v.size(); i++) {
    vector<int> &vv = v[i];
    memset(f, 0, sizeof f);
    int valid = 1, ans = 0;
    for (int j = 0; j < n; j++) {
      f[vv[j]]++;
      if (vv[j])
        if (a[j][vv[j] - 1] == -1)
          valid = 0;
        else
          ans += a[j][vv[j] - 1];
    }
    for (int j = 1; j <= n; j++)
      if (f[j] > 1) valid = 0;
    if (valid) res.push_back(ans);
  }
  sort(res.begin(), res.end());
  cout << res[t - 1] << endl;
  return 0;
}
