시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB277746236.686%

문제

집합 $A$와 집합 $B$가 있고, 여기에 $1$부터 $N$까지의 정수를 각각 집합 $A$ 또는 $B$에 넣으려고 한다. 초기에 집합 $B$에는 정확히 $M$개의 수를 넣어야 하고, 넣은 수가 연속해서는 안 된다. (즉, $x \in B$인 모든 $x$에 대하여 $x + 1 \notin B$를 만족해야 한다.)

이제, 다음과 같은 작업을 원하는 만큼 수행하여 집합 $A$에 정확히 하나의 수만 남기고자 한다.

  • 연속한 세 수 $x, y, z$에 대해 (즉, $y = x + 1;$ $z = y + 1$)
    • 집합 $A$에 $x, y$가, 집합 $B$에 $z$가 존재한다면, $x, y$를 집합 $B$로, $z$를 집합 $A$로 이동할 수 있다.
    • 집합 $A$에 $y, z$가, 집합 $B$에 $x$가 존재한다면, $y, z$를 집합 $B$로, $x$를 집합 $A$로 이동할 수 있다.

위 작업을 적절히 수행해 집합 $A$에 정확히 하나의 수만 남길 수 있도록 초기에 집합 $B$에 $M$개의 수를 넣는 것이 가능하다면, 초기에 집합 $B$에 넣을 수 $M$개를 출력한다. 초기에 집합 $B$에 수를 어떻게 넣어도 적절한 작업을 통해 집합 $A$에 수를 정확히 하나만 남기도록 하는 것이 불가능하다면 “-1”을 출력한다.

입력

첫 줄에 정수 $N$과 초기에 집합 $B$에 넣을 수의 개수 $M$이 공백으로 구분되어 주어진다. $(5 \leq N \leq 1\,000\,000;$ $1 \leq M \leq \lceil{\frac{N}{2}}\rceil - 1)$

출력

집합 $A$에 정확히 하나의 수만 남길 수 있도록 초기에 집합 $B$에 $M$개의 수를 넣는 것이 가능하다면, 첫 줄에 $M$을 출력하고 둘째 줄에 집합 $B$에 처음 넣어야 할 수 $M$개를 공백으로 구분하여 출력한다. 가능한 답이 여러 가지라면 그중 아무거나 출력한다.

그러한 초기 집합 $B$가 없다면, 첫 줄에 “-1”을 출력한다.

예제 입력 1

5 2

예제 출력 1

2
1 3

예제 입력 2

6 1

예제 출력 2

1
2

예제 입력 3

11 1

예제 출력 3

-1