#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int n, m, i, j, k, p, q, x;
pair<int, pair<int, int> > a[N];
long long dp[(1 << 20) + 2], ok[(1 << 20) + 2], cur, b, op;
int main() {
  scanf("%d%d", &n, &m);
  cin >> b;
  for (i = 1; i <= n; i++) {
    scanf("%d%d%d", &a[i].second.first, &a[i].first, &k);
    for (j = 1; j <= k; j++) {
      scanf("%d", &x);
      x--;
      a[i].second.second |= (1 << x);
    }
  }
  sort(a + 1, a + n + 1);
  for (j = 1; j < (1 << m); j++) dp[j] = ok[j] = 2000000000000000000ll;
  for (i = 1; i <= n; i++) {
    for (j = 0; j < (1 << m) - 1; j++)
      if (ok[j] != 2000000000000000000ll) {
        x = (j | a[i].second.second);
        op = ok[j] + a[i].second.first;
        cur = op + b * a[i].first;
        dp[x] = ((dp[x]) < (cur) ? (dp[x]) : (cur));
        ok[x] = ((ok[x]) < (op) ? (ok[x]) : (op));
      }
  }
  if (dp[(1 << m) - 1] == 2000000000000000000ll)
    cout << -1 << endl;
  else
    cout << dp[(1 << m) - 1] << endl;
}
