小红的好数组构造
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}小红定义一个数组是好数组,当且仅当数组中每个数都出现了偶数次,且所有元素均为正整数。特殊的,\{\}(空数组) 也是一个好数组。
\hspace{15pt}现在小红想要找到一个长为 n 的数组,使得:
\hspace{23pt}\bullet\,对于任意整数 d \left(0 \leqq d < k\right),删除数组中任意 d 个下标后,得到的数组都不是好数组;
\hspace{23pt}\bullet\,存在一种删除 k 个下标的方式,使得得到的数组是好数组。
\hspace{15pt}请你帮帮她。

输入描述:

\hspace{15pt}第一行输入两个整数 n, k \left(1 \leqq n \leqq 2\times 10^5, 0 \leqq k \leqq n\right)

输出描述:

\hspace{15pt}如果不存在这样的数组,请输出 -1;否则请输出 n 个整数 a_1, a_2,\dots,a_n \left(1 \leqq a_i \leqq 10^9 \right),代表所求的数组。

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
6 2

输出

复制
1 1 4 5 1 4

说明

\hspace{15pt}可以证明,输出的数组在删除  个和 1 个元素时永远不可能变为好数组;在删除下标 45 的元素后,数组变为 \{1,1,4,4 \},其中 1,4 均出现了偶数次,是一个好数组。
示例2

输入

复制
2 1

输出

复制
-1

说明

\hspace{15pt}设长为 2 的数组 \{a_1,a_2\}。当 a_1 \ne a_2,删除 1 个元素后一定不是好数组;当 a_1 = a_2,删除 0 个元素时是好数组,与要求相悖。