Card Sorting app that uses Kruskal's Algorithm for clustering with UnionFind, Lazy Union by rank and path compression