called with [1, 4, 6, 5, 5] called with [1, 4] called with [1] called with [4] returning [1, 4] 0 called with [6, 5, 5] called with [6] called with [5, 5] called with [5] called with [5] returning [5, 5] 0 returning [5, 5, 6] 2 returning [1, 4, 5, 5, 6] 2 2