A method for programming a non-volatile memory system. The method includes
programming a first non-volatile storage element on a first word line and
a first NAND string to store "n" bits of data. A second non-volatile
storage element on the first word line and a second NAND string is
programmed to store n+1 bits of data. The second non-volatile storage
element is a neighbor to the first non-volatile storage element. A third
non-volatile storage element on a second word line and the second NAND
string is programmed to store n bits of data. The third non-volatile
storage element is a neighbor to the second non-volatile storage element.
A fourth non-volatile storage element on the second word line and the
first NAND string is programmed to store n+1 bits of data.