#include <bits/stdc++.h>
using namespace std;
int X[1020304], K[1020304];
int n, p[1020304], m, B;
int cmp(int x, int y) { return K[x] < K[y]; }
int Mask[1020304];
long long f[1111111];
int main() {
  cin >> n >> m >> B;
  for (int i = 1; i <= n; ++i) {
    int t;
    scanf("%d%d%d", &X[i], &K[i], &t);
    Mask[i] = 0;
    for (int j = 1; j <= t; ++j) {
      int p;
      scanf("%d", &p);
      Mask[i] |= 1 << p - 1;
    }
    p[i] = i;
  }
  sort(p + 1, p + n + 1, cmp);
  f[0] = 0;
  for (int i = 1; i <= (1 << m) - 1; ++i) f[i] = (long long)1.5e18;
  long long ans = (long long)1.5e18;
  for (int I = 1; I <= n; ++I) {
    int i = p[I];
    long long curans = (long long)K[i] * B;
    if (curans > ans) break;
    for (int S = 0; S <= (1 << m) - 1; ++S)
      if ((S & Mask[i]) < Mask[i]) {
        f[S | Mask[i]] = min(f[S | Mask[i]], f[S] + X[i]);
      }
    ans = min(ans, curans + f[(1 << m) - 1]);
  }
  if (ans > 1.3e18)
    puts("-1");
  else
    cout << ans << endl;
  return 0;
}
