#include <bits/stdc++.h>
using namespace std;
struct Friend {
  long long mask, x, k;
  bool operator<(Friend f) const { return k < f.k; }
} f[200];
long long n, m, b, full;
long long dp[1 << 20];
long long ans = 8e18;
void init() {
  cin >> n >> m >> b;
  for (int s, t, i = 0; i < n; ++i) {
    cin >> f[i].x >> f[i].k >> t;
    while (t--) {
      cin >> s;
      f[i].mask |= (1 << (s - 1));
    }
  }
  full = (1 << m);
  sort(f, f + n);
  for (int i = 1; i < full; ++i) {
    dp[i] = 8e18;
  }
}
int main() {
  init();
  for (int i = 0; i < n; ++i) {
    for (int bt = 0; bt < full; ++bt) {
      dp[bt | f[i].mask] = min(dp[bt] + f[i].x, dp[bt | f[i].mask]);
    }
    ans = min(ans, dp[full - 1] + f[i].k * b);
  }
  cout << (ans > 7e18 ? -1 : ans);
  return 0;
}
