#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,cnt,head[N];
struct Edge{
int u,v,next;
}edge[2*N];
void add(int u,int v){
edge[++cnt].next=head[u];
edge[cnt].u=u;
edge[cnt].v=v;
head[u]=cnt;
return;
}
void solve(){
for(int i=1;i<=n;i++){
bool f=false;
vector<int> res_to_sort;
for(int j=head[i];j!=0;j=edge[j].next){
f=true;
res_to_sort.push_back(edge[j].v);
}
sort(res_to_sort.begin(),res_to_sort.end());
for(int i=0;i<res_to_sort.size();i++){
cout<<res_to_sort[i]<<" ";
}
if(f==false) cout<<"None"<<endl;
else cout<<endl;
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
int u,v;
for(int i=1;i<=m;i++){
cin>>u>>v;
add(u,v);
add(v,u);
}
solve();
return 0;
}