Pagini recente » Cod sursa (job #688786) | Cod sursa (job #1017511) | Cod sursa (job #2292982) | Cod sursa (job #514422) | Cod sursa (job #2635910)
#include<bits/stdc++.h>
using namespace std;
#define INIT ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define mp make_pair
#define pb push_back
#define ft first
#define sc second
#define ll long long
#define pii pair<int, int>
#define count_bits __builtin_popcount
#define int ll
ifstream fin("ciclueuler.in"); ofstream fout("ciclueuler.out");
#define cin fin
#define cout fout
int n, m;
vector<pii> g[100010];
vector<int> res;
bool v[500010];
int d[100010];
int32_t main(){
INIT
cin>>n>>m;
for(int i=1; i<=m; i++){
int u, v; cin>>u>>v;
g[u].pb(mp(v, i) ); g[v].pb(mp(u, i) );
d[u]++; d[v]++;
}
stack<int> st;
int x=1;
for(int i=1; i<=n; i++){
if(d[i]>0){
x=i;
}
if(d[i]%2==1){
cout<<-1; return 0;
}
}
st.push(x);
while(!st.empty()){
int t=st.top();
for(int i=0; i<g[t].size(); i++){
if(!v[g[t][i].sc ] ){
v[g[t][i].sc ]=true;
st.push(g[t][i].ft); goto Next;
}
}
res.pb(t);
st.pop();
Next:continue;
}
if(res.size()!=(m+1) ){cout<<"-1"; return 0;}
for(int i=0; i<(res.size()-1); i++){
cout<<res[i]<<" ";
}
return 0;
}