#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int n,m;
const int maxn=1e5+5;
vector<int>nelist[maxn];
int main(){
cin>>n>>m;
int map[n+5][m+5]={};
for(int i=1;i<=n;i++){
int x,y;
cin>>x>>y;
map[x][y]=1;
map[y][x]=1;
nelist[x].push_back(y);
nelist[y].push_back(x);
}
for(int i=1;i<=n;i++){
for(int k=1;k<=n;k++){
cout<<map[i][k]<<" ";
}
cout<<endl;
}
for(int i=1;i<=n;i++){
sort(nelist[i].begin(), nelist[i].end());
cout<<nelist[i].size()<<" ";
for(std::vector<int>::iterator it=nelist[i].begin();it!=nelist[i].end();it++){
cout<<*it<<" ";
}
cout<<endl;
}
return 0;
}