func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, m, b;   vector<pair<long long, long long> > v;   long long mask[105], cost[105], monitors[105];   long long dp[1 << 21];   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cin >> n >> m >> b;     for (int i = 0; i <= 100; i++) mask[i] = (1ll << 30) - 1;     for (long long i = 0; i < n; i++) {       long long temp;       cin >> cost[i] >> monitors[i] >> temp;       for (long long j = 0; j < temp; j++) {         long long val;         cin >> val;         mask[i] -= (1ll << (val - 1));       }       v.push_back(make_pair(monitors[i], i));     }     sort(v.begin(), v.end());     for (long long i = 1; i < (1ll << 21) - 2; i++) dp[i] = 1ll << 60;     long long ans = 1ll << 60;     for (long long i = 0; i < n; i++) {       long long pt = v[i].second;       for (long long j = 1; j < (1 << m); j++) {         dp[j] = min(dp[j], dp[j & mask[pt]] + cost[pt]);       }       ans = min(ans, dp[(1 << m) - 1] + v[i].first * b);     }     if (ans < 1ll << 60)       cout << ans <<   n ;     else       cout <<  -1 n ;     return 0;   }   