function [HoleVolumes] = process_the_block_of_cheese_Bendi(cube)
    HoleCount=0;
    HoleVolumes=[];
    LastVisited=0;
    FIFO={};
    
    while 1
        if isempty(FIFO)
            LastVisited=LastVisited+1;
            
            if LastVisited>(size(cube,1)*size(cube,2)*size(cube,3))
                break;
            end
            
            [py,px,pz]=ind2sub(size(cube),LastVisited);
            
            if cube(py,px,pz) == 1
                FIFO = fifo_enqueue(FIFO, [py,px,pz]);
                HoleCount=HoleCount+1;
                HoleVolumes(HoleCount)=0;          
            end
        else 
            [FIFO,last]=fifo_dequeue(FIFO);
            py=last(1);
            px=last(2);
            pz=last(3);
            
            if  cube(py,px,pz) == 0
                    continue;
            elseif cube(py,px,pz) == 1
                    HoleVolumes(HoleCount)=HoleVolumes(HoleCount)+1;
                    cube(py,px,pz)=0;
                    
                    for i=-1:1
                        for j=-1:1
                            for k=-1:1
                                    if py+i<= 100 && py+i> 0 &&px+j<= 100 && px+j> 0&&pz+k<= 100 && pz+k> 0                                    
                                        if cube(py+i,px+j,pz+k) == 1
                                            FIFO = fifo_enqueue(FIFO, [py+i,px+j,pz+k]);
                                        end
                                    end
                            end
                        end
                    end

            end    
        end   
    end
end