Nurikabe

Description
Nurikabe is a binary determination puzzle in which the cells in a grid are split into either water (shaded) or land (unshaded).

Rules
The objective is to divide the grid into shaded and unshaded cells, subject to the following rules:
 * 1) Each numbered cell is an island cell, the number in it is the number of cells in that island.
 * 2) Each island contains exactly one numbered cell.
 * 3) There must be only one stream, which is not allowed to contain "pools", i.e. 2x2 areas of shaded cells.

Example
A standard 10x10 nurikabe and its solution.





Variants
Unless otherwise indicated, standard nurikabe rules apply to all variants.

Golem Grad: All water areas must be divisible into snakes with the heads and tails given in the grid. Snakes cannot cross each other.

Nurikabe Line: The rule that no 2x2 area of water is allowed is replaced with no 1x5 area of water is allowed.

Nurikabe Pairs: The island contains exactly two numbered clues, the sum giving the size of the island.