Exhaustive Solution
if ( m==moveDown ){ // fill from above
puz[rowB][colB] = puz[rowB-1][colB];
puz[rowB-1][colB] = Blank;
else if ( m==moveUp ) { // fill from below
puz[rowB][colB] = puz[rowB+1][colB];
puz[rowB+1][colB] = Blank;
else if ( m==moveRight) {// fill from left
puz[rowB][colB] = puz[rowB][colB-1];
puz[rowB][colB-1] = Blank;
puz[rowB][colB] = puz[rowB][colB+1];
puz[rowB][colB+1] = Blank;