#include <bits/stdc++.h>
using namespace std;
int N, M, B;
long long cost[111];
int k[111], mask[111];
int p[111];
bool comp(int c1, int c2) { return k[c1] < k[c2]; }
long long dp[(1 << 21)];
int main() {
  scanf("%d%d%d", &N, &M, &B);
  for (int i = 0; i < N; ++i) {
    int n;
    scanf("%d%d%d", &cost[i], &k[i], &n);
    for (int j = 0; j < n; ++j) {
      int t;
      scanf("%d", &t);
      t--;
      mask[i] |= (1 << t);
    }
    p[i] = i;
  }
  sort(p, p + N, comp);
  long long ans = 4e18;
  for (int i = 0; i < (1 << M); ++i) dp[i] = -1;
  dp[0] = 0;
  for (int _i = 0; _i < N; _i++) {
    int i = p[_i];
    for (int msk = 0; msk < (1 << M); ++msk) {
      if (dp[msk] == -1) continue;
      int nmask = msk | mask[i];
      if (dp[nmask] == -1 || dp[nmask] > dp[msk] + cost[i]) {
        dp[nmask] = dp[msk] + cost[i];
      }
    }
    if (dp[(1 << M) - 1] != -1)
      ans = min(ans, dp[(1 << M) - 1] + 1ll * k[i] * B);
  }
  if (ans == 4e18) ans = -1;
  cout << ans;
  return 0;
}
