#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int head[N],v[N],nex[N],cnt,n,k;
struct node{
int xx;
int yy;
}a[N];
void add(int x,int y){
v[++cnt]=y;
nex[cnt]=head[x];
head[x]=cnt;
}bool cmp(node f,node l){
if(f.xx!=l.xx)return f.xx<l.xx;
else return f.yy>l.yy;
}int main(){
memset(head,-1,sizeof head);
cin>>n>>k;
for(int i=1;i<=k;i++){
cin>>a[i].xx>>a[i].yy;
}sort(a+1,a+k+1,cmp);
for(int i=1;i<=k;i++){
add(a[i].xx,a[i].yy);
}
for(int i=1;i<=n;i++){
cout<<i<<": ";
if(head[i]==-1){
cout<<"zero\n";
continue;
}for(int j=head[i];j!=-1;j=nex[j]){
cout<<v[j]<<" ";
}cout<<"\n";
}
return 0;
}