#include <bits/stdc++.h>
using namespace std;
const int maxn = 200;
const long long INF = 2 * 1e18;
int n, m, soal[maxn], pool[maxn], x, a;
pair<long long, int> moni[maxn];
long long dp[1100000], b, ans = INF;
int main() {
  cin >> n >> m >> b;
  for (int i = 1; i <= n; i++) {
    cin >> pool[i] >> moni[i].first >> x;
    moni[i].second = i;
    for (int j = 0; j < x; j++) {
      cin >> a;
      soal[i] += (1 << (a - 1));
    }
  }
  sort(moni + 1, moni + n + 1);
  for (int i = 1; i < (1 << m); i++) dp[i] = INF;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < (1 << m); j++)
      dp[j | soal[moni[i + 1].second]] = min(dp[j | soal[moni[i + 1].second]],
                                             dp[j] + pool[moni[i + 1].second]);
    ans = min(ans, dp[(1 << m) - 1] + 1ll * b * moni[i + 1].first);
  }
  if (ans == INF)
    cout << -1;
  else
    cout << ans;
  return 0;
}
