1. A method for programming a plurality of memory cells to a desired state, each cell having more than two possible states, comprising: applying at least one programming pulse to the cells; verifying that each cell has reached the desired state; selecting the cells that are programmed for a highest state; and applying at least one additional programming pulse to the selected cells without further verifying their state.