function greedy(ls) {
  var acc = [];
  var len = ls.length;
  for (var i = 0; i < len; i++) {
    if (!isSubset(ls[i], _.flatten(acc))) {
      acc.push(ls[i]);
    }
  }
  return acc;
}
## Model

  We define a greedy solver to the problem. It doesn't give an optimal solution,
  but it is easier to verify that the solver is correct.