CodeForces

来源:互联网 发布:软件测试的思路 编辑:程序博客网 时间:2024/04/25 22:48

Levko loves permutations very much. A permutation of length n is a sequence of distinct positive integers, each is at most n.

Let’s assume that value gcd(a, b) shows the greatest common divisor of numbers a and b. Levko assumes that element pi of permutation p1, p2, ... , pn is good if gcd(i, pi) > 1. Levko considers a permutation beautiful, if it has exactly k good elements. Unfortunately, he doesn’t know any beautiful permutation. Your task is to help him to find at least one of them.

Input

The single line contains two integers n and k (1 ≤ n ≤ 1050 ≤ k ≤ n).

Output

In a single line print either any beautiful permutation or -1, if such permutation doesn’t exist.

If there are multiple suitable permutations, you are allowed to print any of them.

Example
Input
4 2
Output
2 4 3 1
Input
1 1
Output
-1
Note

In the first sample elements 4 and 3 are good because gcd(2, 4) = 2 > 1 and gcd(3, 3) = 3 > 1. Elements 2 and 1 are not good becausegcd(1, 2) = 1 and gcd(4, 1) = 1. As there are exactly 2 good elements, the permutation is beautiful.

The second sample has no beautiful permutations.

思路: 构造一个数列,对于那个最大公约数为1的情况我是按照相邻的数来赋值,这样保证为1

#include<stdio.h>#include<math.h>#include<string.h>using namespace std;int main(){int n,k,i,j;scanf("%d%d",&n,&k);if(n==1&&k==0)printf("1");else if(n==1&&k==1||n-k==0)printf("-1");else{int count=2;for(int i=1;i<=n-k-1;i++){printf("%d",count);count++;printf(" ");}printf("1");for(i=n-k+1;i<=n;i++)printf(" %d",i);}return 0;}


1 0
原创粉丝点击