#include <bits/stdc++.h>
long long MOD = 1000000007;
long long inf = 1e18;
using namespace std;
vector<long long> XX(3);
long long dp[1 << 20 + 1];
long long m, n;
long long P[101];
vector<vector<long long> > PP;
bool Taken[21];
long long X[101], k[101];
long long b;
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m >> b;
  long long i, j, x, q, msk, mm;
  for (i = 0; i < n; i++) {
    cin >> X[i] >> k[i] >> mm;
    q = 0;
    for (j = 0; j < mm; j++) {
      cin >> x;
      q += 1 << (x - 1);
    }
    XX[0] = k[i];
    XX[1] = q;
    XX[2] = X[i];
    PP.push_back(XX);
  }
  sort(PP.begin(), PP.end());
  for (i = 0; i < n; i++) {
    X[i] = PP[i][2];
    P[i] = PP[i][1];
    k[i] = PP[i][0];
  }
  for (i = 0; i <= 1 << m; i++) {
    dp[i] = -1;
  }
  dp[0] = 0;
  for (i = 0; i < n; i++) {
    for (msk = 0; msk < (1 << m) - 1; msk++) {
      if (dp[msk] == -1) {
        continue;
      }
      q = msk | P[i];
      if (q == (1 << m) - 1) {
        if (dp[q] == -1) {
          dp[q] = dp[msk] + X[i] + k[i] * b;
        } else {
          dp[q] = min(dp[q], dp[msk] + X[i] + k[i] * b);
        }
      } else {
        if (dp[q] == -1) {
          dp[q] = dp[msk] + X[i];
        } else {
          dp[q] = min(dp[q], dp[msk] + X[i]);
        }
      }
    }
  }
  cout << dp[(1 << m) - 1];
  return 0;
}
