#include <bits/stdc++.h>
using namespace std;

vector<int> a[100010];
int n,m;
int main(){
	int i,j,x,y;
	cin>>n>>m;
	for(i = 0;i < m;i++){
		cin>>x>>y;
		//向下标为x-1的向量中存储y 
		a[x-1].push_back(y);
	}
	
	for(i = 0;i < n;i++){
		sort(a[i].begin(),a[i].end());
		cout<<a[i].size()<<" ";
		for(j = 0;j < a[i].size();j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
		
	} 
}


/**************************************************************
	Problem: 1500
	User: admin
	Language: C++
	Result: Accepted
	Time:40 ms
	Memory:4420 kb
****************************************************************/