OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题1668--yg学长の试炼之 五:k排列

1668: yg学长の试炼之 五:k排列

时间限制: 1 Sec  内存限制: 128 MB
提交: 23  解决: 9
[提交] [状态] [讨论版] [命题人:]

题目描述

一天,yg学长想到了一种特殊的排列,叫做k排列。如果存在恰好 k 个 i ,使得 1 <= i <= n 并且 gcd(pi, i) = 1,那么 n 的 p1,  p2, ..., pn 成为k排列。
给定 n 和 k ,请帮助学长构建一个 n 的 k排列。如果该排列存在则在一行中直接输出字典序最小的符合条件的排列,否则输出“-1”(不带双引号)。
规定排列的字典序:
如果存在两个排列p1和p2,从 1 开始遍历两个排列,当且仅当第一次出现p1[i] < p2[i]时,可以称p1的字典序比p2小。

输入

一行中输入两个整数n, k;
(1 <= n <= 2e6; 0 <= k <= n; 保证k是奇数)

输出

如果存在符合条件的排列则输出字典序最小的那个,每两个数字之间有一个空格;否则输出-1

样例输入 Copy

5 3

样例输出 Copy

1 2 3 5 4 

提示

保证k是奇数

来源/分类