#include <bits/stdc++.h>
using namespace std;
struct st {
  long long c;
  long long m;
  int xnd;
};
bool operator<(st a, st b) { return a.m < b.m; }
st a[200];
long long d[2][1 << 21], ans = 0;
int main() {
  int n, m, cnt, i, j, f;
  long long x, k, b;
  cin >> n >> m >> b;
  for (i = 1; i <= n; ++i) {
    cin >> x >> k >> cnt;
    for (j = 0; j < cnt; ++j) {
      cin >> f;
      a[i].xnd |= (1 << (f - 1));
    }
    a[i].c = x;
    a[i].m = k;
  }
  ans = 2000000000 * 1ll * 2000000000;
  sort(a + 1, a + 1 + n);
  for (i = 1; i < (1 << m); ++i) d[0][i] = 2000000000 * 1ll * 2000000000;
  for (i = 1; i <= n; ++i) {
    for (j = 0; j < (1 << m); ++j) d[i & 1][j] = d[(i + 1) & 1][j];
    for (j = 0; j < (1 << m); ++j) {
      if (d[i & 1][j | a[i].xnd] > d[(i + 1) & 1][j] + a[i].c) {
        d[i & 1][j | a[i].xnd] = d[(i + 1) & 1][j] + a[i].c;
      }
    }
    if (ans > d[i & 1][-1 + (1 << m)] + a[i].m * 1ll * b) {
      ans = d[i & 1][-1 + (1 << m)] + a[i].m * 1ll * b;
    }
  }
  if (ans == 2000000000 * 1ll * 2000000000) ans = -1;
  cout << ans;
  return 0;
}
