#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+10;
struct node {
ll id;
ll s,t;
}a[N];
bool cmp(node a,node b){
return a.t<b.t;
}
ll n,m;
vector<ll> ans[N];
priority_queue<pair<ll,ll>,vector<pair<ll,ll> >,greater<pair<ll,ll> > > lq;
priority_queue<ll,vector<ll>,greater<ll> > em;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i].s>>a[i].t;
a[i].id=i;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=m;i++){
em.push(i);
}
for(int i=1;i<=n;i++){
if(em.empty()){
continue;
}
while(!lq.empty() and a[i].t>=lq.top().first){
em.push(lq.top().second);
lq.pop();
}
ll ai=em.top();
em.pop();
ans[ai].push_back(a[i].id);
lq.push(make_pair(a[i].t+a[i].s,ai));
}
for(int i=1;i<=m;i++){
sort(ans[i].begin(),ans[i].end());
}
for(int i=1;i<=m;i++,cout<<endl){
cout<<ans[i].size()<<" ";
for(auto x:ans[i]){
cout<<x<<" ";
}
}
return 0;
}