A Branching Algorithm.