#include<bits/stdc++.h>
using namespace std;
vector<int>a[100010];
vector<int>b[100010];
typedef struct{
long long t,q;
}node;
bool cmp(node xx,node yy){
if(xx.t==yy.t)return xx.q<yy.q;
return xx.t<yy.t;
}
int main(){
long long n,m,len[114514];
cin>>n>>m;
node d[114514];
for(int i = 1;i<=m;i++){
long long x,y;
cin>>x>>y;
if(x>y) swap(x,y);
d[i].t=x;d[i].q=y;
}
sort(d+1,d+1+m,cmp);
for(int i = 1;i<=m;i++){
a[d[i].t].push_back(d[i].q);
a[d[i].q].push_back(d[i].t);
}
for(int i = 1;i<=n;i++){
len[i]=0;
for(int j = 1;j<=n;j++){
if(j==a[i][len[i]]){
cout<<1<<' ';
len[i]++;
}
else cout<<0<<' ';
}
cout<<endl;
}
for(int i = 1;i<=n;i++){
cout<<len[i]<<' ';
for(int j = 0;j<len[i];j++)cout<<a[i][j]<<' ';
cout<<endl;
}
}