public static void backtrackSolve(Board b) {
		List<Point> prev = new ArrayList<Point>();
		for (int x = 0; x < 9; x++) {
			for (int y = 0; y < 9; y++) {
				if (!b.isFilled(x, y)) {
					for (int i = b.get(x, y) + 1; i <= 10; i++) {
						System.out.println(x + "," + y + "," + i);
						if (i == 10) {
							b.setNotRed(x, y, 0);
							Point prevP = prev.get(prev.size() - 1);
							x = prevP.x;
							y = prevP.y;
							prev.remove(prev.size() - 1);
							i = b.get(x, y);
						} else if (isPossible(b, x, y, i)) {
							prev.add(new Point(x, y));
							b.set(x, y, i);
							break;
						}
					}
				}
			}
		}
	}