aglorithm 1&2 tag
algorithm 3
merge