anchor.diff:                      labels[cp] = minLabel;
   
                       //update equivs
  +                    // union both sets of labels together
  +                    // for each group in labels, set equivs[group] to unioned list
                       equivs[northLabel].union(equivs[westLabel]);
                       equivs[westLabel].union(equivs[northLabel]);
                   }
  
positive.code:     int y;
      Point parent;
  
      Point(this.x, this.y);
  
      String toString() { return "{$x,$y}"; }
  
  
negative.code: Map<int, Set<Point>> connectedColors(List<List<Cell>> board){
      Map<int, Set<Point>> blobs = new Map<int, Set<Point>>();
      Map<int, Set<int>> equivs = new Map<int, Set<int>>();
      DisJointPoints labels = new DisJointPoints();
      int labelIndex = 0;
      //TODO scan map, build blob and equivalency list
      //first pass
  