class Solution {
public:
int res = 0;
void find(vector<vector<char> >& grid, int i, int j, int m, int n) {
int dx[4] = {0, 1, 0, -1}, dy[4] = {-1, 0, 1, 0};
grid[i][j] = '0';
for(int k = 0; k < 4; k ++) {
int x = i + dx[k], y = j + dy[k];
if(x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1') {
find(grid, x, y, m ,n);
}
}
}
int solve(vector<vector<char> >& grid) {
int m = grid.size(), n = grid[0].size();
for(int i = 0; i < m; i ++) {
for(int j = 0; j < n ; j ++) {
if(grid[i][j] == '1') {
res ++;
find(grid, i , j, m, n);
}
}
}
return res;
}
};