general shapes spanning points
Some changes for profiling
Add a MaximumDisjointSetSolver class