#include <bits/stdc++.h>
using namespace std;
const long long INF = 9223372036654775807;
long long dp[1 << 21];
int mnt[1 << 21], n, b, mt, mm;
struct fr {
  int m, x, k;
} f[105];
bool comp(fr a, fr b) { return (a.k < b.k); }
int main() {
  cin >> n >> mm >> b;
  for (int i = 0; i < n; i++) {
    cin >> f[i].x >> f[i].k >> mt;
    f[i].m = 0;
    int t;
    for (int j = 0; j < mt; j++) {
      cin >> t;
      f[i].m |= (1 << (t - 1));
    }
  }
  sort(f, f + n, comp);
  dp[0] = 0;
  for (int i = 1; i < (1 << mm); i++) dp[i] = INF;
  long long ans = INF;
  for (int j = 0; j < n; j++) {
    for (int i = 0; i < (1 << mm); i++)
      if (dp[i] < INF) {
        int jj = i | f[j].m;
        dp[jj] = min(dp[i] + f[j].x, dp[jj]);
      }
    if (dp[(1 << mm) - 1] < INF)
      ans = min(ans, dp[(1 << mm) - 1] + (long long)b * f[j].k);
  }
  if (ans != INF)
    cout << ans;
  else
    cout << -1;
  return 0;
}
