#include<bits/stdc++.h>
#define pi 3.1415926535897932384626
using namespace std;
      
struct P{
  int x,y;
  bool operator < (const P &a )const{
    //if(y!=a.y)
    return y>a.y;
  };
};

int a,b,c,d,i,k,n,m,e,dx[10]={1,0,-1,0,1,1,-1,-1},dy[10]={0,1,0,-1,1,-1,1,-1};
int o[130113];
int l[100310][3];
int j[302];

long long x,y,z,mod=1000000007;
//string r;
char r[111];

P u[1];
queue<int> q;

stack<int> s;
map<int,int> p;
vector<P> v;

bool as(P a,P b)
{
  if(a.x==b.x)
  return a.y<b.y;
  return a.x<b.x;
}


int main()
{
  scanf("%d %d",&a,&b);
  for(int t=2*a;t<3*a;t++)
    l[t-2*a][2]=b+t;
  for(int t=0,i=b,j=b+2*a-a/2-1;t<a-a/2;i+=2,j--,t++)
  {
    l[t][0]=i;
    l[t][1]=j;
  }
  for(int t=a-a/2,i=b+1,j=b+a*2-1;t<a;j--,i+=2,t++)
  {
    l[t][0]=i;
    l[t][1]=j;
  }
  for(int t=0;t<a;t++)
  if(l[t][0]+l[t][1]>l[t][2])
  {
    puts("-1");
    return 0;
  }
  for(int t=0;t<a;t++,puts(""))
  for(int h=0;h<3;h++)
    printf("%d ",l[t][h]);
}



