Where am I wrong

#include<bits/stdc++.h>
#define endl “\n”
using namespace std;
char maze[11][11];bool sol[11][11]={0};
bool solve(int i,int j,int m,int n){
//base cases
if(i==n)return false;
if((i<0)||(j<0))return false;
if(j==m)return false;
if((i==n-1)&&(j==m-1)&&(maze[i][j]==‘O’)){sol[i][j]=1;
//print sol
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)cout<<sol[i][j]<<" ";cout<<endl;
}cout<<endl;

			return true;
	}
		//recursive cases
		if(maze[i][j]=='X')return false;
		if(sol[i][j]==1)return false;
		sol[i][j]=1;
		
	    
	    bool left=solve(i,j-1,m,n);
	    if(left)return true;
	    bool right=solve(i,j+1,m,n);
		if(right)return true;
		bool down=solve(i+1,j,m,n);
	    if(down)return true;
	    bool up=solve(i-1,j,m,n);
	    if(up)return true;
	    

	    sol[i][j]=0;//backtrack....
	    return false;

}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
#ifndef ONLINE_JUDGE
freopen(“input.txt”,“r”,stdin);
freopen(“output.txt”,“w”,stdout);
#endif
int n,m;
cin>>n>>m;

for(int i=0;i<n;i++){
	for(int j=0;j<m;j++){
		cin>>maze[i][j];
	}
}

if(!solve(0,0,m,n))cout<<"NO PATH FOUND"<<endl;;
return 0;

}