#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef vector<ll> vll;
typedef vector<bool> vb;



const ll INF=10000000000;

#define rep(i,m,n) for(int i=m;i<n;i++)


int main(){
   cin.tie(nullptr);
  ios::sync_with_stdio(false);

  ll n,k;
  cin >> n >> k;
  if(2*k-1>n) {
    cout << -1 << endl;
    return 0;
  }
  vll a(n),b(n),c(n);
    ll l=(n+1)/2;
    rep(i,0,l) a[i]=k+2*i;
    rep(i,l,n) a[i]=k+1+2*(i-l);
  if(n%2) {
    rep(i,0,l) b[i]=k+3*l-2-i;
    rep(i,l,n) b[i]=k+4*l-3-(i-l);
    rep(i,0,n) c[i]=k+4*l-2+i;
  }
  else {
   rep(i,0,l) b[i]=k+3*l-1-i;
    rep(i,l,n) b[i]=k+4*l-1-(i-l);
    rep(i,0,n) c[i]=k+4*l+i;
  
  }
  
  rep(i,0,n) cout << a[i] << " " << b[i] << " " << c[i] << endl;
  
}

### Prompt

Generate a Cpp solution to 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 <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef vector<ll> vll;
typedef vector<bool> vb;



const ll INF=10000000000;

#define rep(i,m,n) for(int i=m;i<n;i++)


int main(){
   cin.tie(nullptr);
  ios::sync_with_stdio(false);

  ll n,k;
  cin >> n >> k;
  if(2*k-1>n) {
    cout << -1 << endl;
    return 0;
  }
  vll a(n),b(n),c(n);
    ll l=(n+1)/2;
    rep(i,0,l) a[i]=k+2*i;
    rep(i,l,n) a[i]=k+1+2*(i-l);
  if(n%2) {
    rep(i,0,l) b[i]=k+3*l-2-i;
    rep(i,l,n) b[i]=k+4*l-3-(i-l);
    rep(i,0,n) c[i]=k+4*l-2+i;
  }
  else {
   rep(i,0,l) b[i]=k+3*l-1-i;
    rep(i,l,n) b[i]=k+4*l-1-(i-l);
    rep(i,0,n) c[i]=k+4*l+i;
  
  }
  
  rep(i,0,n) cout << a[i] << " " << b[i] << " " << c[i] << endl;
  
}

```