algorithm4
algo v5