for(List<Position> positions : helper.getClosedUnknownBorderCells()) {
probBacktrackValid = false;
toPickMap.clear(); toFlagMap.clear(); solutionsFound = 0;
toPick.clear(); toPick.addAll(positions);
toFlag.clear(); toFlag.addAll(positions);
backtrackSolve(grid, helper, positions, new Node(null,null), new Node(null,null));
if(toPick.size() == 0 && toFlag.size() == 0) {
toPick.clear(); toFlag.clear();
Entry<Position, Integer> pickMax = null, flagMax = null;
if(toPickMap.size() >= 1) pickMax = Collections.max(toPickMap.entrySet(), (a,b) -> a.getValue()-b.getValue());
if(toFlagMap.size() >= 1) flagMax = Collections.max(toFlagMap.entrySet(), (a,b) -> a.getValue()-b.getValue());