private static boolean check(int row, int column) {
		if (0 == row) {
			return true;
		}
		for (int i = 0; i < row; i ++) { //check the same column
			if (past[i][column] == 1) {
				return false;
			}
		}
		for (int i = row - 1, j = column - 1; (i >=0)&&(j >= 0); i --, j --) { //from left top to right bottom
			if (past[i][j] == 1) {
				return false;
			}
		}
		for (int i = row - 1, j = column + 1; (i >= 0)&&(j < 8); i --, j ++) { //from right top to left bottom
			if (past[i][j] == 1) {
				return false;
			}
		}
		return true;
	}