#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-9;
const int maxn = 2e4;
const long long inf = 1e9 + 7;
long long mask[110], moni[110], mon[110];
long long dp[1 << 20];
pair<int, pair<int, int> > fr[110];
int main() {
  int n, m;
  long long b;
  cin >> n >> m >> b;
  for (int i = 0; i < n; i++) {
    int c, cm = 0;
    cin >> fr[i].second.first >> fr[i].first >> c;
    for (int i = 0; i < c; i++) {
      int cz;
      cin >> cz;
      cm |= 1 << (cz - 1);
    }
    fr[i].second.second = cm;
  }
  sort(fr, fr + n);
  for (int i = 0; i < n; i++) {
    moni[i] = fr[i].first;
    mon[i] = fr[i].second.first;
    mask[i] = fr[i].second.second;
  }
  for (int j = 0; j < 1 << m; j++) {
    dp[j] = (long long)1 << 60;
  }
  dp[0] = 0;
  int curmask = 1 << (m);
  curmask--;
  long long an = (long long)1 << 62;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < 1 << m; j++) {
      if (dp[j] == (long long)1 << 60) continue;
      if (dp[j | mask[i]] > dp[j] + mon[i]) dp[j | mask[i]] = dp[j] + mon[i];
    }
    if (dp[curmask] == (long long)1 << 60) continue;
    if (dp[curmask] + (long long)moni[i] * b < an)
      an = dp[curmask] + (long long)moni[i] * b;
  }
  if (an == (long long)1 << 62) {
    cout << -1;
    return 0;
  }
  cout << an;
  return 0;
}
