//头文件,也可以使用万能头
#include <iostream>
#include <vector>

//主程序
int main() {
    int n = 0, k = 0;
    std::cin >> n >> k;

    if (n - k == 1) {
        std::cout << -1 << std::endl;   //这时候,已经没有符合了,该-1了.jpg
        return 0;
    }

    std::vector<int> a(n);  //长度为n的动态数组
    for (int i = 0; i < n; i++) a[i] = i + 1;   //如果下标是0,那么值为1,没办法,vector是从0开始的,哎

    int m = n - k;  //那么m就该为随机排序的数量了,也就是随机排列数量 = 全部数量 - 不动数量
    if (m > 0) {
        int first = a[k];  //先把要随机的第一个值保存一下
        for (int i = k; i < n - 1; i++) a[i] = a[i + 1];    //然后把要随机排列的值全部+1,这样就对应不了下标了捏,但最后一个会失去
        a[n - 1] = first;   //你猜我为什么要保存第一个要随机排列的值?
    }

    for (const auto& val : a) std::cout << val << " ";
  
    std::cout << std::endl;

    return 0;
}