Problem: 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 ≤ 105, 0 ≤ 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.

Examples

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 because gcd(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.

Solution (in JAVA):

Solution:
import java.awt.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.*;


public class Main
{


    public static void main(String args[])
    {
        MyScanner scanner = new MyScanner();
        int n = scanner.nextInt(), k = scanner.nextInt();
        if( n == k )
        {
            System.out.println(-1);
            return;
        }
        if( n <= 1 && k > 0 )
        {
            if( k > 0 )
                System.out.println(-1);
            else{
                for( int i = 1; i <= n ; i++ )
                {
                    System.out.print(i+" ");
                }
            }
            return;
        }
        int arr[] = new int[n +1];
        arr[1] = 1;
        for( int i = 2; i < k + 2;  i++ )
        {
            arr[i] = i;
        }
        int rem = n - ( k + 1);
        if( rem % 2 != 0 )
        {
            arr[n] = 1;
            arr[1] = n;
            rem--;
        }
        int ind = k + 2;
        while ( rem > 0 )
        {
            arr[ind] = ind + 1;
            arr[ind + 1] = ind;
            ind = ind + 2;
            rem = rem -2;
        }
        for( int i = 1; i <= n ; i ++ )
        {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
}

class MyScanner {
    BufferedReader br;
    StringTokenizer st;

    public MyScanner() {
        br = new BufferedReader(new InputStreamReader(System.in));
    }

    public int mod(long x) {
        // TODO Auto-generated method stub
        return (int) x % 1000000007;
    }

    public int mod(int x) {
        return x % 1000000007;
    }

    boolean hasNext() {
        if (st.hasMoreElements())
            return true;
        try {
            st = new StringTokenizer(br.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return st.hasMoreTokens();
    }

    String next() {
        while (st == null || !st.hasMoreElements()) {
            try {
                st = new StringTokenizer(br.readLine());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return st.nextToken();
    }

    int nextInt() {
        return Integer.parseInt(next());
    }

    double nextDouble() {
        return Double.parseDouble(next());
    }

    String nextLine() {
        String str = "";
        try {
            str = br.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str;
    }

    public long nextLong() {
        return Long.parseLong(next());
    }
}