code: def find(self, x):
          
          if self.up[x] == x:
              return x
          else:
              self.up[x] = self.find(self.up[x])
              return self.up[x]
docs: :returns: identifier of part containing x
          :complexity: O(inverse_ackerman(n))