called with [5, 10, 8, 10, 1] called with [5, 10] called with [5] called with [10] returning [5, 10] 0 called with [8, 10, 1] called with [8] called with [10, 1] called with [10] called with [1] returning [1, 10] 1 returning [1, 8, 10] 2 returning [1, 5, 8, 10, 10] 5 5