algorithm 519 862 833 949 algorithm 521 1051 870 1205 text 118 123 499 1204 text 520 123 901 844 text 520 967 901 1029