Algorithm 2.