/* Author: goats_9 */
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
cin.tie(0)->sync_with_stdio(0);
int n, m;
cin >> n >> m;
vector<pair<int, int>> e(m);
vector<vector<pair<int, int>>> g(n);
for (int i = 0; i < m; i++) {
auto& [u, v] = e[i];
cin >> u >> v;
g[--u].emplace_back(--v, i);
g[v].emplace_back(u, i);
}
vector<int> vis(m), ord;
auto dfs = [&] (auto&& self, int u) -> void {
while (!g[u].empty()) {
auto [v, i] = g[u].back();
g[u].pop_back();
if (vis[i]) continue;
vis[i] = 1;
self(self, v);
}
ord.push_back(u);
};
dfs(dfs, 0);
reverse(ord.begin(), ord.end());
vector<vector<int>> cycles;
vector<int> s, in(n);
for (auto x : ord) cerr << x << ' ';
cerr << endl;
for (int u : ord) {
if (in[u]) {
vector<int> cyc;
while (1) {
int v = s.back();
s.pop_back();
in[v] = 0;
cyc.push_back(v + 1);
if (v == u) break;
}
reverse(cyc.begin(), cyc.end());
cycles.push_back(cyc);
}
in[u] = 1;
s.push_back(u);
}
for (auto v : cycles) {
for (auto u : v) cout << u << ' ';
cout << '\n';
}
return 0;
}