int m = 0,n=0;
void solve(vector<vector<char>> &board) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(board.empty()||board[0].empty())
return;
m = board.size();
n = board[0].size();
int i,j;
for(j=0;j<n;j++)
{
if(board[0][j]=='O')
dfs(0,j,board);
if(board[m-1][j]=='O')
dfs(m-1,j,board);
}
for(i=1;i<m-1;i++)
{
if(board[i][0]=='O')
dfs(i,0,board);
if(board[i][n-1]=='O')
dfs(i,n-1,board);
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(board[i][j]=='+')
board[i][j] = 'O';
else if(board[i][j]=='O')
board[i][j] = 'X';
}
}
}
void dfs(int i,int j,vector<vector<char>>& board)
{
if(i>=m||i<0||j<0||j>=n||board[i][j]!='O')
return;
board[i][j] = '+';
dfs(i-1,j,board);
dfs(i+1,j,board);
dfs(i,j-1,board);
dfs(i,j+1,board);
}