#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  long long price;
  scanf("%d%d%I64d", &n, &m, &price);
  int k[n], mask[n];
  long long x[n];
  for (int i = 0; i < n; i++) {
    int sz;
    scanf("%I64d%d%d", &x[i], &k[i], &sz);
    mask[i] = 0;
    while (sz--) {
      int tmp;
      scanf("%d", &tmp);
      tmp--;
      mask[i] |= 1 << tmp;
    }
  }
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++) {
      if (k[i] < k[j]) continue;
      swap(k[i], k[j]);
      swap(mask[i], mask[j]);
      swap(x[i], x[j]);
    }
  vector<long long> dp(1 << m, 2e18);
  dp[0] = 0;
  long long ans = 2e18;
  for (int i = 0; i < n; i++) {
    int mask1 = mask[i];
    for (int j = 0; j < 1 << m; j++) {
      if (dp[j] == -1) continue;
      dp[j | mask1] = min(dp[j | mask1], dp[j] + x[i]);
    }
    long long tmp = dp[(1 << m) - 1];
    tmp += k[i] * price;
    ans = min(ans, tmp);
  }
  printf("%I64d", ans == 2e18 ? -1 : ans);
  return 0;
}
