code: def _get_representative(self, obj):
          
  
          if obj not in self._parents:
              self._parents[obj] = obj
              self._weights[obj] = 1
              self._prev_next[obj] = [obj, obj]
              self._min_values[obj] = obj
              return obj
  
          path = [obj]
          root = self._parents[obj]
          while root != path[-1]:
              path.append(root)
              root = self._parents[root]
  
          # compress the path and return
          for ancestor in path:
              self._parents[ancestor] = root
          return root
docs: Finds and returns the root of the set containing `obj`.