#include <bits/stdc++.h>
using namespace std;
struct Friend {
  int c, k, s;
} F[105];
const long long inf = 0x7fffffffffffffff;
long long a[2][1 << 20];
int cmp(Friend a, Friend b) { return a.k < b.k; }
int main() {
  int n, m, k, i, j;
  while (scanf("%d%d%d", &n, &m, &k) != EOF) {
    for (i = 0; i < n; i++) {
      int tn;
      scanf("%d%d%d", &F[i].c, &F[i].k, &tn);
      for (j = F[i].s = 0; j < tn; j++) {
        int tmp;
        scanf("%d", &tmp);
        F[i].s |= 1 << (tmp - 1);
      }
    }
    sort(F, F + n, cmp);
    for (i = 0; i < 1 << m; i++) a[0][i] = a[1][i] = inf;
    a[1][0] = 0;
    long long ans = inf;
    for (i = 0; i < n; i++) {
      memcpy(a[0], a[1], sizeof(a[1]));
      for (j = 0; j < 1 << m; j++)
        if (a[0][j] != inf)
          a[1][j | F[i].s] = min(a[1][j | F[i].s], a[0][j] + F[i].c);
      if (a[1][(1 << m) - 1] != inf) {
        ans = min(ans, a[1][(1 << m) - 1] + (long long)F[i].k * k);
        a[1][(1 << m) - 1] = inf;
      }
    }
    printf("%I64d\n", ans == inf ? -1 : ans);
  }
  return 0;
}
