#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
const int MAXN=1e6+10;
bool T[N][N];
vector <int> G[MAXN];
int main(){
int n,m;
scanf("%d%d",&n,&m);
memset(T,0,sizeof T);
for(int i = 0; i < n; i ++){
int u, v;
scanf("%d%d",&u,&v);
T[u][v] = 1;
T[v][u] = 1;
G[u].push_back(v);
G[v].push_back(u);
}
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= m; j ++){
printf("%d ",T[i][j]);
}
printf("\n");
}
for(int i = 1; i <= n; i ++){
cout<<G[i].size()<<" ";
sort(G[i].begin(), G[i].end());
for(int j = 0; j < G[i].size(); j ++){
printf("%d ",G[i][j]);
}
printf("\n");
}
return 0;
}