#include <bits/stdc++.h>
using namespace std;
int n, m, k, mid;
int g[21][21];
int cnt;
void dfs(int x, int cur);
int flag[21];
vector<int> vec;
int main(int argc, char** argv) {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 0; i < m; i++) {
    int u, v, w;
    scanf("%d%d%d", &u, &v, &w);
    g[u][v] = w;
  }
  dfs(1, 0);
  sort(vec.begin(), vec.end());
  printf("%d", vec[k - 1] ? vec[k - 1] : -1);
  return 0;
}
void dfs(int x, int cur) {
  if (x > n) {
    cnt++;
    vec.push_back(cur);
    return;
  }
  dfs(x + 1, cur);
  for (int i = 1; i <= n; i++) {
    if (!flag[i] && g[x][i]) {
      flag[i]++;
      dfs(x + 1, cur + g[x][i]);
      flag[i]--;
    }
  }
}
