#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll INF = 2e18;
struct Friend {
  ll mask, k, sum;
  bool operator<(Friend z) const { return k < z.k; }
} a[105];
void solve() {
  ll n, m, b;
  cin >> n >> m >> b;
  for (int i = 0; i < n; ++i) {
    ll r, res = 0;
    cin >> a[i].sum >> a[i].k >> r;
    while (r--) {
      ll q;
      cin >> q;
      q--;
      res |= 1 << q;
    }
    a[i].mask = res;
  }
  sort(a, a + n);
  vector<ll> dp(1 << m, INF);
  dp[0] = 0ll;
  ll ans = INF;
  for (int i = 0; i < n; ++i) {
    for (int mask = 0; mask < (1 << m); ++mask) {
      if (dp[mask] < INF) {
        ll j = mask | a[i].mask;
        dp[j] = min(dp[j], dp[mask] + a[i].sum);
      }
    }
    if (dp[(1 << m) - 1] < INF) {
      ans = min(ans, dp[(1 << m) - 1] + b * a[i].k);
    }
  }
  cout << (ans == INF ? -1 : ans);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  solve();
}
