#include <iostream>
#include <vector>
#include <algorithm> // for sort
using namespace std;
struct edge {
int dau, cuoi, w;
};
vector<int> ke[1001];
int main() {
int n, m;
cin >> n >> m;
// Initialize variables before using them
int x, y;
for(int i = 0; i < m; i++) {
cin >> x >> y;
ke[x].push_back(y);
ke[y].push_back(x);
}
for(int i = 1; i <= n; i++) {
sort(ke[i].begin(), ke[i].end());
cout << i << " : ";
for(int neighbor : ke[i]) {
cout << neighbor << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPiAvLyBmb3Igc29ydAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBlZGdlIHsKICAgIGludCBkYXUsIGN1b2ksIHc7Cn07Cgp2ZWN0b3I8aW50PiBrZVsxMDAxXTsKCmludCBtYWluKCkgewogICAgaW50IG4sIG07IAogICAgY2luID4+IG4gPj4gbTsKCiAgICAvLyBJbml0aWFsaXplIHZhcmlhYmxlcyBiZWZvcmUgdXNpbmcgdGhlbQogICAgaW50IHgsIHk7CgogICAgZm9yKGludCBpID0gMDsgaSA8IG07IGkrKykgewogICAgICAgIGNpbiA+PiB4ID4+IHk7CiAgICAgICAga2VbeF0ucHVzaF9iYWNrKHkpOwogICAgICAgIGtlW3ldLnB1c2hfYmFjayh4KTsKICAgIH0KCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIHNvcnQoa2VbaV0uYmVnaW4oKSwga2VbaV0uZW5kKCkpOwogICAgICAgIGNvdXQgPDwgaSA8PCAiIDogIjsgCiAgICAgICAgZm9yKGludCBuZWlnaGJvciA6IGtlW2ldKSB7CiAgICAgICAgICAgIGNvdXQgPDwgbmVpZ2hib3IgPDwgIiAiOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K