수 맞추기 게임
시간 제한3초메모리 제한512 MB
M과 K가 주어질 때, N이 1부터 M까지인 각 경우에 1번 학생의 승률을 가장 높이는 첫 질문 후보를 구합니다.
문제
명의 학생이 선생님이 고른 수를 맞추는 게임을 한다. 게임은 다음과 같이 진행된다.
- 선생님은 1 이상 이하의 무작위 정수 를 고른다. 학생들은 의 값을 미리 안다.
- 1번 학생부터 차례대로 한 명씩 1 이상 이하의 수 를 골라 질문한다. 이면 해당 학생이 이긴다. 그렇지 않으면 선생님이 와 의 대소 관계를 모든 학생에게 공개한다.
- 번 학생까지 질문을 마치면 다시 1번 학생의 차례로 돌아간다. 를 맞추는 학생이 나올 때까지 게임을 진행한다.
각 학생은 자신의 승리 확률을 가장 높이는 질문을 한다. 그러한 질문이 여러 개이면 그중에서 균등한 확률로 무작위로 하나를 골라 질문한다. 모든 학생은 이 전략을 사용한다는 사실을 미리 알고 있다.
목표는 1번 학생이 첫 차례에 질문할 수 있는 수의 후보를 찾는 것이다.
양의 정수 과 학생 수 가 주어졌을 때, 각각에 대해 1번 학생이 첫 차례에 질문할 수의 후보를 구하는 프로그램을 작성하라.
입력
첫 번째 줄에 양의 정수 ()이 주어진다.
두 번째 줄에는 학생의 수 ()이 주어진다.
출력
개의 줄에 걸쳐 정답을 출력한다. 번째 줄에는 인 경우에 1번 학생의 첫 질문으로 가능한 답의 후보들을 오름차순으로 라 할 때, 개의 수를 공백을 사이에 두고 형식으로 출력한다.