
Given an m x n 2D binary grid grid which represents a map of '1' s (land) and '0' s (water), return the number of islands .
An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
m == grid.lengthn == grid[i].length1 <= m, n <= 300grid[i][j] is '0' or '1' .