#include <bits/stdc++.h>
using namespace std;
const long long INF = (long long)3e18;
const int MAX_N = 100 + 5;
int x[MAX_N], u[MAX_N];
pair<int, int> k[MAX_N];
long long dp[2][(1 << 20) + 5];
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  long long n, m, b;
  cin >> n >> m >> b;
  for (int i = 0; i < n; i++) {
    int t;
    cin >> x[i] >> k[i].first >> t;
    k[i].second = i;
    for (int j = 0; j < t; j++) {
      int in;
      cin >> in;
      in--;
      u[i] = u[i] | (1 << in);
    }
    u[i] = ~u[i];
  }
  sort(k, k + n);
  long long ans = INF;
  dp[0][0] = 0;
  for (int j = 1; j < (1 << m); j++) dp[0][j] = INF;
  for (int j = 0; j < n; j++) {
    bool c = j % 2;
    int p = k[j].second;
    for (int mask = 1; mask < (1 << m); mask++)
      dp[!c][mask] = min(dp[c][mask], dp[c][mask & u[p]] + x[p]);
    ans = min(ans, dp[!c][(1 << m) - 1] + b * (long long)k[j].first);
  }
  if (ans == INF)
    cout << -1;
  else
    cout << ans;
  return 0;
}
