data :=[ (join ltrim 55, 94,48, 95,30,96, 77,71,26,67, 97,13,76,38,45, 07,36,79,16,37,68, 48,07,09,18,70,26,06, 18,72,79,46,59,79,29,90, 20,76,87,11,32,07,07,49,18, 27,83,58,35,71,11,25,57,29,85, 14,64,36,96,27,11,58,56,92,18,55, 02,90,03,60,48,49,41,46,33,36,47,23, 92,50,48,02,36,59,42,79,72,20,82,77,42, 56,78,38,80,39,75,02,71,66,66,01,03,55,72, 44,25,67,84,71,67,11,61,40,57,58,89,40,56,36, 85,32,25,85,57,48,84,35,47,62,17,01,01,99,89,52, 06,71,28,75,94,48,37,10,23,51,06,48,53,18,74,98,15, 27,02,92,23,08,71,76,84,15,52,92,63,81,10,44,10,69,93 )] i := data.MaxIndex() row := Ceil((Sqrt(8*i+1) - 1) / 2) path:=[] loop % row { path[i] := data[i] i-- } while i { row := Ceil((Sqrt(8*i+1) - 1) / 2) path[i] := data[i] "+" (data[i+row] > data[i+row+1] ? path[i+row] : path[i+row+1]) data[i] += data[i+row] > data[i+row+1] ? data[i+row] : data[i+row+1] i -- } MsgBox % data[1] "`n" path[1]