Sethi-Ullman algorithm