#include <bits/stdc++.h>
using namespace std;
long long n, m, b;
vector<pair<long long, long long> > v;
long long mask[105], cost[105], monitors[105];
long long dp[1 << 21];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> m >> b;
  for (int i = 0; i <= 100; i++) mask[i] = (1ll << 30) - 1;
  for (long long i = 0; i < n; i++) {
    long long temp;
    cin >> cost[i] >> monitors[i] >> temp;
    for (long long j = 0; j < temp; j++) {
      long long val;
      cin >> val;
      mask[i] -= (1ll << (val - 1));
    }
    v.push_back(make_pair(monitors[i], i));
  }
  sort(v.begin(), v.end());
  for (long long i = 1; i < (1ll << 21) - 2; i++) dp[i] = 1ll << 60;
  long long ans = 1ll << 60;
  for (long long i = 0; i < n; i++) {
    long long pt = v[i].second;
    for (long long j = 1; j < (1 << m); j++) {
      dp[j] = min(dp[j], dp[j & mask[pt]] + cost[pt]);
    }
    ans = min(ans, dp[(1 << m) - 1] + v[i].first * b);
  }
  if (ans < 1ll << 60)
    cout << ans << "\n";
  else
    cout << "-1\n";
  return 0;
}
