RT
#include<bits/stdc++.h>
using namespace std;
const int N=505;
int n,k;
int ans[N*N][N];
bool used[N][N][N];
int main() {
cin>>n>>k;
if(k==n*n) {
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
cout<<i<<" "<<j<<" "<<(2*n-i-j)%n<<endl;
}
}
return 0;
}
int cnt=0;
int left=(n*n-k)/3,left2=(n*n-k)%3;
if(n%3!=0&&(n*n-k)%3==2) {
if(n-2==0) used[0][1][1]=1;
else used[1][1][n-2]=1;
}
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
int a=i,b=j,c=(2*n-i-j)%n;
if(a==b&&b==c) {
if(left2>0) continue;
ans[++cnt][0]=ans[cnt][1]=ans[cnt][2]=a;
continue;
}
if(a>b) swap(a,b);
if(a>c) swap(a,c);
if(b>c) swap(b,c);
if(used[a][b][c]) {left--;continue;}
if(left>0) {used[a][b][c]=1;left--;continue;}
ans[++cnt][0]=i;
ans[cnt][1]=j;
ans[cnt][2]=(2*n-i-j)%n;
}
}
if(n%3!=0&&(n*n-k)%3==2) cout<<"1 1 1\n";
for(int i=1+(n%3!=0&&(n*n-k)%3==2);i<=k;i++) {
cout<<ans[i][0]<<" "<<ans[i][1]<<' '<<ans[i][2]<<endl;
}
return 0;
}