private boolean checkValid(int x, int y) {
		boolean[] row = new boolean[9];
		boolean[] col = new boolean[9];
		for (int i = 0; i < 9; i++) {
			char rowChar = board[x][i];
			char colChar = board[i][y];
			if (rowChar != '.') {
				if (row[rowChar - '1'])
					return false;
				else
					row[rowChar - '1'] = true;
			}
			
			if (colChar != '.') {
				if (col[colChar - '1'])
					return false;
				else
					col[colChar - '1'] = true;
			}
		}
		
		for (int i = 0; i < 9; i++)
			row[i] = false;
		
		x = (x / 3) * 3;
		y = (y / 3) * 3;
		for (int k = 0; k < 9; k++) {
			char blockChar = board[x + (k/3)][y + (k%3)];
			if (blockChar != '.') {
				if (row[blockChar - '1'])
					return false;
				else
					row[blockChar - '1'] = true;
			}
		}
		
		return true;
	}