#include <bits/stdc++.h>
using namespace std;
long long dp[1 << 20];
int a[110], c[110], d[110], s[110];
void ck(long long &a, long long b) {
  if (a == -1 || a > b) {
    a = b;
  }
}
int r[110];
bool cmp(int x, int y) { return c[x] < c[y]; }
int main() {
  int n, m, b;
  scanf("%d%d%d", &n, &m, &b);
  for (int i = 0; i < n; i++) {
    scanf("%d%d%d", &a[i], &c[i], &d[i]);
    s[i] = 0;
    for (int j = 0; j < d[i]; j++) {
      int x;
      scanf("%d", &x);
      x--;
      s[i] |= (1 << x);
    }
    r[i] = i;
  }
  sort(r, r + n, cmp);
  memset(dp, -1, sizeof(dp));
  dp[0] = 0;
  int ms = 0;
  long long cst = 0;
  long long ans = -1;
  for (int ii = 0; ii < n; ii++) {
    int i = r[ii];
    cst = (long long)c[i] * b;
    for (int j = 0; j < (1 << m); j++) {
      if (dp[j] == -1) continue;
      ck(dp[j | s[i]], dp[j] + a[i]);
    }
    if (dp[(1 << m) - 1] != -1) ck(ans, dp[(1 << m) - 1] + cst);
  }
  printf("%I64d\n", ans);
  return 0;
}
