//***********************************************************************************
public void filter(IntVar[] vars, UndirectedGraph graph, F heur, Propagator aCause) throws ContradictionException{
assert n == vars.length-1;
BitSet mis = heur.getMIS();
if(mis.cardinality()==vars[n].getUB()){
ISet nei;
for (int i = mis.nextClearBit(0); i>=0 && i < n; i = mis.nextClearBit(i + 1)) {
int mate = -1;
int last = 0;
if(valToRem.length<vars[i].getDomainSize()){