#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m; // n:顶点数, m:边数
cin >> n >> m;
vector<vector<int>> adj(n+1);
// 构建无向图
for(int i =1; i <= m; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u); // 无向图需要双向添加
}
// 遍历邻接表
for(int i = 1; i <= n; i++) {
if(adj[i].empty()){
cout<<"None";
}
sort(adj[i].begin(), adj[i].end());
for(int neighbor : adj[i]) {
cout << neighbor << " ";
}
cout << endl;
}
return 0;
}

京公网安备 11010502036488号