#include <bits/stdc++.h>
#include <cstring>
using namespace std;
const int N=1050;
const int M=1e5+10;
int ma[N][N];
int e[N],ne[M],h[M],idx;
vector <int> ans;
void add(int a,int b){
e[idx]=b;
ne[idx]=h[a];
idx++;
}
void degree(int u){
for(int i=h[u];i !=-1;i=ne[i]) ans.push_back(e[i]);
cout<<ans.size()<<" ";
sort(ans.begin(),ans.end());
for(auto x:ans) cout<< x <<" ";
ans.clear();
}
int main(){
memset(h,-1,sizeof h);
int n,m;
cin>>n>>m;
while(m--){
int u,v;
cin>>u>>v;
ma[u][v]=ma[v][u]=1;
add(u,v),add(v,u);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<ma[i][j]<<" ";
cout<<endl;
}
for(int i=0;i<n;i++)
{
degree(e[i]);
cout<<endl;
}
return 0;
}