private static ArrayList<Position> possibleStartPositions(State state){
        ArrayList<Position> positions = new ArrayList<Position>();
        
        for(Position box : state.boxes){
            if(state.isFree(box.x+1,box.y)){
                positions.add(new Position(box.x+1,box.y));
            }
            if(state.isFree(box.x-1,box.y)){
                positions.add(new Position(box.x-1,box.y));
            }
            if(state.isFree(box.x,box.y+1)){
                positions.add(new Position(box.x,box.y+1));
            }
            if(state.isFree(box.x,box.y-1)){
                positions.add(new Position(box.x,box.y-1));
            }
        }
        return positions;
    }