• 1: Use B pages in memory to form runs. So each run is length B.
  • 2: (B-1)-way merge, and one page for output. So we take B-1 inputs of length B, yielding runs of length B(B-1).
  • 3: Then B-1 inputs of length B(B-1), yielding runs of length B(B-1)^2, and so on.