#include <bits/stdc++.h>
using namespace std;
const int maxn = 150;
const int sz = 1 << 21;
const long long INF = 2e18;
int n, m, b, k[maxn], p[maxn], mask[maxn], x[maxn];
long long dp[sz];
bool cmp(int X, int Y) { return k[X] < k[Y]; }
int main() {
  cin >> n >> m >> b;
  for (int i = 1; i <= n; i++) {
    p[i] = i;
    int a;
    cin >> x[i] >> k[i] >> a;
    while (a--) {
      int x;
      cin >> x;
      --x;
      mask[i] |= (1 << x);
    }
  }
  sort(p + 1, p + 1 + n, cmp);
  memset(dp, 63, sizeof dp);
  dp[0] = 0;
  long long ans = INF;
  for (int i = 1; i <= n; i++) {
    for (int j = (1 << m) - 1; j >= 0; j--)
      dp[j] = min(dp[j], dp[j & (~mask[p[i]])] + x[p[i]]) +
              1LL * (k[p[i]] - k[p[i - 1]]) * b;
    ans = min(ans, dp[(1 << m) - 1]);
  }
  cout << (ans == INF ? -1 : ans) << endl;
  return 0;
}
