#include <bits/stdc++.h>
const long long unsigned INF = (1 << 64) - 1;
using namespace std;
long long unsigned n, m, b, i, j, t, y, val, k, sol = INF, dyn[(1 << 22)];
pair<long long unsigned, pair<long long unsigned, long long unsigned> > a[110];
int main() {
  cin >> n >> m >> b;
  val = (1 << m) - 1;
  for (i = 1; i <= val; i++) dyn[i] = INF;
  for (i = 1; i <= n; i++) {
    cin >> a[i].second.first >> a[i].first >> t;
    for (j = 1; j <= t; j++) {
      cin >> y;
      a[i].second.second |= (1 << (y - 1));
    }
  }
  sort(a + 1, a + n + 1);
  for (i = 1; i <= n; i++) {
    for (j = 0; j <= val; j++)
      if (dyn[j] != INF)
        dyn[j | a[i].second.second] =
            min(dyn[j | a[i].second.second], dyn[j] + a[i].second.first);
    if (dyn[val] != INF) sol = min(sol, dyn[val] + b * a[i].first);
  }
  (sol == INF) ? cout << -1 : cout << sol;
  return 0;
}
