# Union Find
We need to implement two functions if a problem can be solved by union find.
- Find(x) - To find the representative node for x
- Union(x,y) - Join two groups, which is by joining their representatives
```
def find(self, x):
if (self.parent[x] == -1):
return x
return self.find(self.parent[x])
def union(self, x, y):
self.parent[self.find(x)] = self.find(y)
```