class Maze:
    def __init__(self, grid, start=None, exit=None):
        self.grid = grid
        self.start = start
        self.exit = exit
        self.height = len(grid)
        self.width = len(grid[0]) if grid else 0

    def getCell(self, x, y):
        if 0 <= x < self.width and 0 <= y < self.height:
            return self.grid[y][x]
        return None

    def getNeighbors(self, cell):
        directions = [(0,1),(1,0),(0,-1),(-1,0)]
        result = []
        for dx, dy in directions:
            nx, ny = cell.x + dx, cell.y + dy
            neighbor = self.getCell(nx, ny)
            if neighbor and neighbor.isPassable():
                result.append(neighbor)
        return result