algorithm 103 117 461 836