func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long MOD = 1000000007;   const int N = 110;   struct T {     int bits;     int x;     int k;   };   bool cmp(const T& a, const T& b) { return a.k < b.k; }   T a[N];   long long dp[(1 << 20) + 4];   int n, m;   long long b;   long long Ans() {     const long long INF = 1LL << 60;     long long res = 0;     long long ans = INF;     int top = 1 << m;     for (int i = 0; i < top; ++i) dp[i] = 1LL << 60;     dp[0] = 0;     res = a[0].k * b;     dp[a[0].bits] = a[0].x;     ans = min(ans, dp[top - 1] + res);     for (int i = 1; i < n; ++i) {       res = a[i].k * b;       int& bits = a[i].bits;       for (int j = top - 1; j >= 0; --j)         if (dp[j] != INF) {           dp[j | bits] = min(dp[j | bits], dp[j] + a[i].x);         }       ans = min(ans, dp[top - 1] + res);     }     if (ans == INF) ans = -1;     return ans;   }   int main() {     ios::sync_with_stdio(false);     cin >> n >> m >> b;     int s, t;     for (int i = 0; i < n; ++i) {       cin >> a[i].x >> a[i].k >> s;       a[i].bits = 0;       for (int j = 0; j < s; ++j) {         cin >> t;         a[i].bits |= 1 << (t - 1);       }     }     sort(a, a + n, cmp);     cout << Ans() << endl;   }   