Algorithm3