#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
#define int i64
#define vi vector<int>
#define vvi vector<vi>
#define vb vector<bool>
#define pii pair<int, int>
#define fi first
#define se second
#define sz(x) (int)(x).size()
inline void solve(){
    int n, m;
    cin >> n >> m;
    vector<vector<pii>> adj(n);
    for(int i = 0; i < m; i++){
        int a, b;
        cin >> a >> b;
        adj[--a].emplace_back(--b, i);
        adj[b].emplace_back(a, i);
    }
    vb vis(m);
    vi circuit, seen(n);
    function<void(int)> dfs = [&](int v) -> void {
        while(!adj[v].empty()){
            pii to = adj[v].back();
            adj[v].pop_back();
            if(vis[to.se]) continue;
            vis[to.se] = true;
            dfs(to.fi);
        }
        circuit.emplace_back(v);
        if(++seen[v] == 2){
            cout << v + 1 << " ";
            circuit.pop_back();
            while(circuit.back() != v){
                cout << circuit.back() + 1 << " ";
                seen[circuit.back()]--;
                circuit.pop_back();
            }
            cout << "\n";
            seen[v] = 1;
        }
        return;
    };
    dfs(0);
    return;
}
signed main(){
    ios_base::sync_with_stdio(false); cin.tie(0);
    int t = 1;
    //cin >> t;
    while(t--){
        solve();
    }
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |