Algorithm 1: