#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int N, K;
    cin>>N>>K;

    if ((N+1)/2 < K)
    {
        cout<<-1<<endl;
        return 0;
    }

    vector<int> A(N), B(N), C(N);

    int K2 = (N+1)/2;
    for (int i=0; i<N; i++)
        C[i] = K2+2*N+i;

    if (N%2==0)
    {
        A[0] = K2;
        for (int i=0; i<N/2-1; i++)
        {
            A[i+1] = K2+i*2+1;
            A[i+N/2+1] = K2+i*2+2;
        }
        A[N/2] = K2+(N/2-1)*2+1;

        for (int i=0; i<N; i++)
            B[i] = C[i]-A[i];
        B[0] = K2+N;
    }
    else
    {
        for (int i=0; i<N/2; i++)
        {
            A[i] = K2+i*2;
            A[i+N/2+1] = K2+i*2+1;
        }
        A[N/2] = K2+N/2*2;

        for (int i=0; i<N; i++)
            B[i] = C[i]-A[i];
    }

    for (int i=0; i<N; i++)
    {
        A[i] += K-K2;
        B[i] += K-K2;
        C[i] += K-K2;
    }
    for (int i=0; i<N; i++)
        cout<<A[i]<<" "<<B[i]<<" "<<C[i]<<endl;
}

### Prompt

Create a solution in Cpp for the following problem:

Given are positive integers N and K.

Determine if the 3N integers K, K+1, ..., K+3N-1 can be partitioned into N triples (a_1,b_1,c_1), ..., (a_N,b_N,c_N) so that the condition below is satisfied. Any of the integers K, K+1, ..., K+3N-1 must appear in exactly one of those triples.

* For every integer i from 1 to N, a_i + b_i \leq c_i holds.



If the answer is yes, construct one such partition.

Constraints

* 1 \leq N \leq 10^5
* 1 \leq K \leq 10^9

Input

Input is given from Standard Input in the following format:


N K


Output

If it is impossible to partition the integers satisfying the condition, print `-1`. If it is possible, print N triples in the following format:


a_1 b_1 c_1
:
a_N b_N c_N

Output

If it is impossible to partition the integers satisfying the condition, print `-1`. If it is possible, print N triples in the following format:


a_1 b_1 c_1
:
a_N b_N c_N

Examples

Input

1 1


Output

1 2 3


Input

3 3


Output

-1

### Response

```cpp
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int N, K;
    cin>>N>>K;

    if ((N+1)/2 < K)
    {
        cout<<-1<<endl;
        return 0;
    }

    vector<int> A(N), B(N), C(N);

    int K2 = (N+1)/2;
    for (int i=0; i<N; i++)
        C[i] = K2+2*N+i;

    if (N%2==0)
    {
        A[0] = K2;
        for (int i=0; i<N/2-1; i++)
        {
            A[i+1] = K2+i*2+1;
            A[i+N/2+1] = K2+i*2+2;
        }
        A[N/2] = K2+(N/2-1)*2+1;

        for (int i=0; i<N; i++)
            B[i] = C[i]-A[i];
        B[0] = K2+N;
    }
    else
    {
        for (int i=0; i<N/2; i++)
        {
            A[i] = K2+i*2;
            A[i+N/2+1] = K2+i*2+1;
        }
        A[N/2] = K2+N/2*2;

        for (int i=0; i<N; i++)
            B[i] = C[i]-A[i];
    }

    for (int i=0; i<N; i++)
    {
        A[i] += K-K2;
        B[i] += K-K2;
        C[i] += K-K2;
    }
    for (int i=0; i<N; i++)
        cout<<A[i]<<" "<<B[i]<<" "<<C[i]<<endl;
}

```