RT
#include<iostream>
#include<algorithm>
using namespace std;
struct ff {
long long int i;
long long int sum;
long long int next;
bool cs;
} a[10000000];
long long int t=0;
long long int wj[1000000];
long long int b[10000000];
long long int bt;
bool cmp(ff x,ff y) {
if(x.sum==y.sum) {
return x.cs<y.cs;
}
return x.sum<y.sum;
}
void csh() {
for(long long int i=1; i<=t; i++) {
if(a[i].cs==0)wj[a[i].i]=i;
}
a[t+1].next=0;
for(long long int i=t; i>=1; i--) {
if(a[i].cs==1)a[i].next=i;
else a[i].next=a[i+1].next;
}
}
long long int find(long long int x) {
if(a[x].next==0)return 0;
if(a[x].next==x) {
a[x].next=a[x+1].next;
return x;
}
long long int u=find(a[x].next);
a[x].next=a[u].next;
return u;
}
int main() {
long long int n,m;
cin>>n>>m;
for(long long int i=1; i<=n; i++) {
t++;
cin>>a[t].sum;
a[t].i=i;
a[t].cs=0;
t++;
cin>>a[t].sum;
a[t].i=i;
a[t].cs=1;
a[t-1].sum+=a[t].sum;
}
sort(a+1,a+t+1,cmp);
csh();
for(long long int i=1; i<=m; i++) {
bt=0;
long long int u=find(1);
while(1) {
if(u==0)break;
bt++;
b[bt]=a[u].i;
u=wj[a[u].i];
u=find(u);
}
sort(b+1,b+bt+1);
cout<<bt;
for(long long int j=1; j<=bt; j++) {
cout<<" "<<b[j];
}
cout<<endl;
}
}