func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long INF = (long long)4e18 + 7;   inline void minimize(long long &x, const long long &y) {     if (x > y) x = y;   }   struct help {     int x, s, r;     help() { x = s = r = 0; }     void input(void) {       x = s = r = 0;       int k;       scanf( %d%d%d , &x, &r, &k);       for (int zz = 0; zz < (k); zz = zz + 1) {         int v;         scanf( %d , &v);         v--;         s |= (1 << (v));       }     }     bool operator<(const help &a) const { return (r < a.r); }   };   long long f[(1 << (20)) + 7];   help a[111];   int n, m, b;   void init(void) {     scanf( %d%d%d , &n, &m, &b);     for (int i = (1); i <= (n); i = i + 1) a[i].input();     sort(a + 1, a + n + 1);   }   void process(void) {     for (int i = 0; i < ((1 << (m))); i = i + 1) f[i] = INF;     f[0] = 0;     long long res = INF;     for (int i = (1); i <= (n); i = i + 1) {       long long cost = 1LL * b * a[i].r;       for (int j = 0; j < ((1 << (m))); j = j + 1)         if (f[j] < INF) minimize(f[j | a[i].s], f[j] + a[i].x);       minimize(res, f[(1 << (m)) - 1] + cost);     }     if (res < INF)       cout << res;     else       cout << -1;   }   int main(void) {     init();     process();     return 0;   }   