About the `size` and subsequent `next` call: are you including them to make it easier to come up with possible answers? I was wondering whether a reader who understands the underlying issue - that `mapValues` generates a new iterator every time - would have any _more_ difficulty getting the correct answers than if there were just two `next` calls to reason about?

Are there some possible paths of reasoning you anticipate readers employing that would change affect the results of the `size` and final `next` call?