add fast disjoint-set data structure