import java.util.*; import java.io.*; public class Dominoes { int[][] field; int K, w, h; Domino[] D; public Dominoes(int K, int w, int h){ K++; this.K = K; this.w = w; this.h = h; field = new int[w][h]; for(int i=0;i= w || y2 < 0 || y2 >= h) return false; // not empty place if(field[x1][y1] != -1 || field[x2][y2] != -1) return false; // border OK if(isValid(D[i].d1,x1,y1) && isValid(D[i].d2,x2,y2)){ // mark D D[i].x1 = x1; D[i].x2 = x2; D[i].y1 = y1; D[i].y2 = y2; // mark field field[x1][y1] = D[i].d1; field[x2][y2] = D[i].d2; if(placeDomino(i+1)) return true; // clear field field[x1][y1] = -1; field[x2][y2] = -1; // clear D (for debugging) D[i].x1 = -1; D[i].x2 = -1; D[i].y1 = -1; D[i].y2 = -1; } return false; } boolean isValid(int pips, int x, int y){ return matchOrEmpty(pips, x-1,y) && matchOrEmpty(pips, x+1,y) && matchOrEmpty(pips, x,y-1) && matchOrEmpty(pips, x,y+1); } boolean matchOrEmpty(int pips, int x, int y){ return ((x < 0 || x >= w || y < 0 || y >= h) || (field[x][y] == -1) || (field[x][y] == pips)); } public static void main(String[] args) throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String l; while((l = in.readLine()) != null){ StringTokenizer toks = new StringTokenizer(l); int K= Integer.parseInt(toks.nextToken()); int w= Integer.parseInt(toks.nextToken()); int h= Integer.parseInt(toks.nextToken()); if(K==-1) break; new Dominoes(K, w, h); } } } class Domino { int d1, d2; int x1, y1; int x2, y2; public String toString(){ return d1+" "+d2+" "+x1+" "+y1+" "+x2+" "+y2; } }