(i) Given a sequence l1 < ... < ls of real numbers, we present an I/O-optimal algorithm that reports all contours of M at heights l1, ..., ls using O(sort(N) + T/B) I/Os, where T is the total number edges in the output contours, B is the "block size," and sort(N) is the number of I/Os needed to sort N elements. The algorithm uses O(N/B) disk blocks. Each contour is generated individually with its composing segments sorted in clockwise or counterclockwise order. Moreover, our algorithm generates information on how the contours are nested.