#include <bits/stdc++.h>
using namespace std;
const int maxn = 102;
const long long oo = 1LL << 60;
struct arr {
  int x, k, s;
  bool operator<(const arr &i) const { return k < i.k; }
} a[maxn];
long long f[1 << 20], b, ans;
int n, m;
int main() {
  int i, j, jj, state;
  scanf("%d%d%I64d", &n, &m, &b);
  for (i = 1; i <= n; ++i) {
    scanf("%d%d%d", &a[i].x, &a[i].k, &jj);
    a[i].s = 0;
    while (jj--) {
      scanf("%d", &j);
      a[i].s += 1 << (j - 1);
    }
  }
  sort(a + 1, a + n + 1);
  state = 1 << m;
  for (j = 1; j < state; ++j) f[j] = oo;
  ans = oo;
  for (i = 1; i <= n; ++i) {
    for (j = 0; j < state; ++j) {
      jj = j | a[i].s;
      f[jj] = min(f[jj], f[j] + a[i].x);
    }
    ans = min(ans, f[state - 1] + a[i].k * b);
  }
  printf("%I64d\n", ans < oo ? ans : -1);
  return 0;
}
