#include <bits/stdc++.h>
using namespace std;
const long long inf = ((long long)1 << 62);
long long n, m, b, c;
struct poc {
  long long x, k, z;
};
vector<poc> a;
long long d[1 << 21];
bool cmp(poc x, poc y) {
  if (x.k < y.k)
    return true;
  else
    return false;
}
int main() {
  cin >> n >> m >> b;
  for (int i = 1; i <= n; i++) {
    poc lol;
    int kol;
    cin >> lol.x >> lol.k >> kol;
    lol.z = 0;
    for (int j = 1; j <= kol; j++) {
      cin >> c;
      c--;
      lol.z |= 1 << c;
    }
    a.push_back(lol);
  }
  sort(a.begin(), a.end(), cmp);
  for (int i = 0; i <= 1 << m; i++) d[i] = inf;
  long long ans = inf;
  d[0] = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < 1 << m; j++)
      if (d[j] < inf) {
        int jj = j | a[i].z;
        d[jj] = min(d[jj], d[j] + a[i].x);
      }
    ans = min(ans, d[(1 << m) - 1] + b * a[i].k);
  }
  if (ans == inf)
    cout << -1;
  else
    cout << ans;
}
