#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1), EPS = 1e-8;
const int mod = 1000000007;
const int dr[]{-1, -1, 0, 1, 1, 1, 0, -1};
const int dc[]{0, 1, 1, 1, 0, -1, -1, -1};
void run() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
int main() {
  run();
  int n, m;
  long long b;
  cin >> n >> m >> b;
  vector<vector<int>> v(n, vector<int>(3));
  for (auto& it : v) {
    int x;
    cin >> it[0] >> it[1] >> x;
    while (x--) {
      int a;
      cin >> a;
      a--;
      it[2] |= (1 << a);
    }
  }
  sort(v.begin(), v.end(),
       [](const vector<int>& a, vector<int>& b) { return a[1] < b[1]; });
  vector<long long> dp(1 << m, 0x3f3f3f3f3f3f3f3fLL);
  dp[(1 << m) - 1] = 0;
  for (int idx = n - 1; idx >= 0; idx--)
    for (int mask = 0; mask < (1 << m); mask++) {
      long long& rt = dp[mask];
      if ((mask | v[idx][2]) == (1 << m) - 1)
        rt = min(rt, v[idx][0] + v[idx][1] * b);
      else
        rt = min(rt, v[idx][0] + dp[mask | v[idx][2]]);
    }
  long long rt = dp[0];
  if (rt >= 0x3f3f3f3f3f3f3f3fLL) rt = -1;
  cout << rt << "\n";
  ;
}
