We can enumerate pairs and run blocking in a more performant language. We can also do the union-find in a more performant language.