union find; paterson-wegeman