#include<iostream>#include<cstdio>#include<cstring>using namespace std;int num[300];int n,m;void solve1(){int i;for(i=1;i<m;i++){printf("%d %d",i,n);for(int j=1;j<n;j++)if(j!=i)printf(" %d",j);printf("\n");}printf("%d %d",i,n-1);for(int j=1;j<=n;j++)if(j!=i&&j!=n-1)printf(" %d",j);printf("\n");}void solve2(){int i;for(i=1;i<=m;i++){printf("%d %d",i,n);for(int j=1;j<n;j++)if(j!=i)printf(" %d",j);printf("\n");}}void solve3(){int a,b;int se;a=m/n;b=m%n;for(int i=1;i<=b;i++){se=n;for(int j=1;j<=a+1;j++){if(se==0)se=n;if(se==i){se--;if(se==0)se=n;}printf("%d %d",i,se);for(int k=1;k<=n;k++)if(k!=i&&k!=se)printf(" %d",k);printf("\n");se--;}}for(int i=b+1;i<=n;i++){se=n;for(int j=1;j<=a;j++){if(se==0)se=n;if(se==i){se--;if(se==0)se=n;}printf("%d %d",i,se);for(int k=1;k<=n;k++)if(k!=i&&k!=se)printf(" %d",k);printf("\n");se--;}}}int main(){while(~scanf("%d%d",&n,&m)){if(n==m)solve1();else if(n>m)solve2();elsesolve3();} return 0;}