#include <bits/stdc++.h>
using namespace std;
int x[110], k[110];
pair<int, int> p[110];
int s[110];
long long dp[1 << 20];
inline void update(long long &a, long long b) {
  if (a == -1) a = b;
  if (a > b) a = b;
}
int main() {
  int n, m, b;
  scanf("%d%d%d", &n, &m, &b);
  for (int i = 0; i < n; i++) {
    int t, ss;
    scanf("%d%d%d", &x[i], &k[i], &t);
    for (int j = 0; j < t; j++) {
      scanf("%d", &ss);
      --ss;
      s[i] |= 1 << ss;
    }
    p[i] = make_pair(k[i], i);
  }
  sort(p, p + n);
  for (int i = 0; i < 1 << m; i++) {
    dp[i] = -1;
  }
  dp[0] = 0;
  long long ans = -1;
  for (int j = 0; j < n; j++) {
    int t = p[j].second;
    for (int i = 0; i < 1 << m; i++) {
      if (dp[i] != -1) {
        update(dp[i | s[t]], dp[i] + x[t]);
      }
    }
    if (dp[(1 << m) - 1] != -1) {
      update(ans, dp[(1 << m) - 1] + (long long)k[t] * b);
    }
  }
  printf("%I64d\n", ans);
  return 0;
}
