#include <bits/stdc++.h>   using namespace std;   const long long inf = 0x7f7f7f7f7f7f7f7f;   struct sta {     int s;     long long k, val;   } p[105];   int n, m;   long long b, f[(1 << 20) + 5];   bool cmp(sta a, sta b) { return a.k < b.k; }   void init() {     memset(f, -1, sizeof f);     scanf( %d%d , &n, &m);     cin >> b;     int t, a;     for (int i = 0; i < n; i++) {       scanf( %lld%lld%d , &p[i].val, &p[i].k, &t);       p[i].s = 0;       for (int j = 0; j < t; j++) {         scanf( %d , &a);         p[i].s |= (1 << (a - 1));       }     }     sort(p, p + n, cmp);   }   long long solve() {     f[0] = 0;     int t = (1 << m) - 1;     long long ans = inf;     for (int i = 0; i < n; i++) {       for (int j = 0; j <= t; j++) {         if (f[j] == -1) continue;         int u = p[i].s | j;         if (f[u] == -1)           f[u] = p[i].val + f[j];         else           f[u] = min(f[u], p[i].val + f[j]);       }       if (f[t] != -1) ans = min(ans, f[t] + p[i].k * b);     }     return ans == inf ? -1 : ans;   }   int main() {     init();     long long res = solve();     cout << res << endl;     return 0;   }   