input: Write a python function to check if there is a path from the top-left to the bottom-right in the maze.
  assert is_path(mazeObj.maze) == True
  assert is_path([[1, 0, 0, 0, 1], [1, 1, 0, 0, 1], [0, 1, 0, 0, 0], [0, 1, 1, 1, 1], [0, 0, 0, 0, 1]]) == False
  assert is_path([[1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0], [0, 1, 1, 1, 1], [0, 1, 0, 0, 1]]) == True
output: def is_path(maze):
      rows, cols = len(maze), len(maze[0])
      
      def dfs(x, y):
          if x == rows - 1 and y == cols - 1:
              return True
          if x < 0 or y < 0 or x >= rows or y >= cols or maze[x][y] == 0:
              return False
          maze[x][y] = 0  # Mark as visited
          # Explore neighbors (right, down, left, up)
          if dfs(x + 1, y) or dfs(x, y + 1) or dfs(x - 1, y) or dfs(x, y - 1):
              return True
          return False
      
      return dfs(0, 0)