#include <bits/stdc++.h>
using namespace std;
const long long inf = 0x7f7f7f7f7f7f7f7f;
struct sta {
  int s;
  long long k, val;
} p[105];
int n, m;
long long b, f[(1 << 20) + 5];
bool cmp(sta a, sta b) { return a.k < b.k; }
void init() {
  memset(f, -1, sizeof f);
  scanf("%d%d", &n, &m);
  cin >> b;
  int t, a;
  for (int i = 0; i < n; i++) {
    scanf("%lld%lld%d", &p[i].val, &p[i].k, &t);
    p[i].s = 0;
    for (int j = 0; j < t; j++) {
      scanf("%d", &a);
      p[i].s |= (1 << (a - 1));
    }
  }
  sort(p, p + n, cmp);
}
long long solve() {
  f[0] = 0;
  int t = (1 << m) - 1;
  long long ans = inf;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= t; j++) {
      if (f[j] == -1) continue;
      int u = p[i].s | j;
      if (f[u] == -1)
        f[u] = p[i].val + f[j];
      else
        f[u] = min(f[u], p[i].val + f[j]);
    }
    if (f[t] != -1) ans = min(ans, f[t] + p[i].k * b);
  }
  return ans == inf ? -1 : ans;
}
int main() {
  init();
  long long res = solve();
  cout << res << endl;
  return 0;
}
