algorithm (6)