public Guess getNextGuess(Puzzle p) {
		Guess bestGuess = null;
		for (int i = 0; i < p.getSize(); i++) {
			List<Integer> possibleValues = p.getPossibleValues(i);
			if (possibleValues.isEmpty()) {
				continue;
			}
			Guess guess = new Guess(i, possibleValues);
			if (possibleValues.size() == 1) { // Best match
				return guess;
			}
			if (bestGuess == null) {
				bestGuess = guess;
			} else if (bestGuess.compareTo(guess) > 0) {
				bestGuess = guess;
			}
		}
		return bestGuess;
	}