#include <bits/stdc++.h>
using namespace std;
struct Friend {
  int id;
  long long cost;
  long long monitor;
  int solves;
};
bool cmp(Friend a, Friend b) { return a.monitor < b.monitor; }
Friend friends[100];
long long dp[1 << 20];
int main() {
  int n, m;
  long long b;
  cin >> n >> m >> b;
  for (int i = 0; i < (1 << m); i++) {
    dp[i] = -1;
  }
  dp[0] = 0;
  for (int i = 0; i < n; i++) {
    long long cost, monitor, num;
    int solves = 0;
    cin >> cost >> monitor >> num;
    for (int j = 0; j < num; j++) {
      int qid;
      cin >> qid;
      solves |= (1 << (qid - 1));
    }
    friends[i] = (Friend){i + 1, cost, monitor, solves};
  }
  sort(friends, friends + n, cmp);
  long long min_cost = -1;
  for (int fid = 0; fid < n; fid++) {
    Friend f = friends[fid];
    for (int i = 0; i < (1 << m); i++) {
      if (dp[i] == -1) {
        continue;
      }
      if (dp[i | f.solves] == -1) {
        dp[i | f.solves] = dp[i] + f.cost;
      } else {
        dp[i | f.solves] = min(dp[i | f.solves], dp[i] + f.cost);
      }
    }
    if (dp[(1 << m) - 1] != -1) {
      if (min_cost == -1) {
        min_cost = (dp[(1 << m) - 1] + f.monitor * b);
      } else {
        min_cost = min(min_cost, dp[(1 << m) - 1] + f.monitor * b);
      }
    }
  }
  cout << min_cost << endl;
}
