int dx\[\]={0,0,1,-1};
int dy\[\]={1,-1,0,0};
class Solution {
public:
void dfs(vector<vector<char>>& grid,vector<vector<bool>>& used,int i,int j,int n,int m){
if(i>=n||i<0||j>=m||j<0)return;
usedij=true;
for(int k=0;k<4;++k){
int x=i+dxk,y=j+dyk;
if(x<0||x>=n||y<0||y>=m||usedxy||gridxy!='1')continue;
dfs(grid,used,x,y,n,m);
}
}
int numIslands(vector<vector<char>>& grid) {
int n=grid.size(),m=grid0.size();
vector<vector<bool>>used(n,vector(m,false));
int cnt=0;
for(int i=0;i<n;++i){
for(int j=0;j<m;++j){
if(usedij==false&&gridij=='1'){
cnt++;
dfs(grid,used,i,j,n,m);
}
}
}
return cnt;
}
};