Question 1: How to break a land into several parts? Answer: The original solution does not restrict to single watershed: iWatershed = iWatershed + 1;