disjoint-set.h