Four Combinatorial Algorithms [G6] (Algorithm 466).