rt
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e3 + 10;
int n, m;
bool g1[MAXN][MAXN];
vector<int> g2[MAXN];
int main() {
cin >> n >> m;
for (int i = 1, u, v; i <= m; i++) {
cin >> u >> v;
g1[u][v] = g1[v][u] = 1;
g2[u].push_back(v);
g2[v].push_back(u);
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout << g1[i][j] << ' ';
}
cout << '\n';
}
for (int i = 1; i <= n; i++) {
cout << g2[i].size() << ' ';
sort(g2[i].begin(), g2[i].end());
for (int j : g2[i]) {
cout << j << ' ';
}
cout << '\n';
}
return 0;
}