Разбиение на камеры
면접 대비시간 제한2초메모리 제한1024 MB
n명의 죄수를 k개의 양의 정수로 나누어 전부 XOR한 값이 0이 되게 만들고, 불가능하면 -1을 출력한다.
문제
Вчера вечером Человек-паук неплохо поработал --- поймал аж преступников! Но тюрьмы уже переполнены, и разместить их решили на авианосце Щита. Ник Фьюри лично решился распределить преступников по камерам.
Всего на авианосце есть камер для заключенных. Распределять преступников по камерам случайным образом Ник не хочет, поэтому он решил распределить всех преступников по камерам так, чтобы <<исключающее или>> числа людей во всех камерах было равно нулю. Более формально, Ник хочет в первую камеру отправить преступников, во вторую , \ldots, в -ю камеру он хочет отправить преступников так, чтобы выполнялись следующие условия:
- , где --- иcключающее или
Также Ник понимает, что оставлять камеры пустыми не имеет смысла, поэтому все должны быть больше нуля.
Преступники уже готовят план побега, поэтому нельзя терять ни минуты. Помогите командиру авианосца как можно быстрее решить эту задачу!
입력
В первой строке входного файла даны два числа () --- количество преступников на корабле Щита и количество камер заключения соответственно.
출력
Если существует требуемое разбиение преступников по камерам, в единственной строке выходного файла выведите положительных чисел, -е из которых означает количество преступников, которое нужно отправить в -ю камеру заключения.
Если нужного разбиения не существует, в единственной строке выходного файла выведите -1. Если существует несколько разбиений, выведите любое.
힌트
Исключающее или --- логическая операция, которая имеет следующую таблицу истинности:
<<Исключающее или>> чисел, состоящих из нескольких бит, считается побитово. Например, , , .
Более подробно про <<исключающее или>> можно почитать тут: https://ru.wikipedia.org/wiki/Сложение\_по\_модулю\_2