#include <bits/stdc++.h>
using namespace std;
int n, m, k;
pair<int, pair<int, int> > a[101];
long long F[2][1048576];
int main() {
  int x, tmp;
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d%d", &a[i].second.first, &a[i].first, &x);
    for (int j = 1; j <= x; j++) {
      scanf("%d", &tmp);
      a[i].second.second |= (1 << (tmp - 1));
    }
  }
  sort(a + 1, a + n + 1);
  for (int i = 0; i < (1 << m); i++) F[0][i] = 1e18 + 1e12;
  F[0][0] = 0;
  int pre = 0, cur = 1;
  long long res = 1e18 + 1e12;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < (1 << m); j++) F[cur][j] = F[pre][j];
    for (int j = 0; j < (1 << m); j++) {
      int state = j | a[i].second.second;
      F[cur][state] = min(F[cur][state], F[pre][j] + 1LL * a[i].second.first);
    }
    res = min(res, F[cur][(1 << m) - 1] + 1LL * k * a[i].first);
    swap(pre, cur);
  }
  if (res == 1e18 + 1e12)
    cout << -1;
  else
    cout << res;
  return 0;
}
