Pagini recente » Cod sursa (job #2933519) | Cod sursa (job #1756034) | Cod sursa (job #30862) | Cod sursa (job #933621) | Cod sursa (job #2373729)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
const int N=100006;
const int M=500006;
int n,m;
vector<int>ind[N];
int f[M],s[M];
bool viz[M];
int ans[M],vf=0;
int k;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
void dfs(int nod) {
while(!ind[nod].empty()) {
k=ind[nod].back();
ind[nod].pop_back();
if(viz[k]==0) {
viz[k]=1;
dfs(f[k]+s[k]-nod);
}
}
ans[++vf]=nod;
}
int main() {
in>>n>>m;
for(int i=1;i<=m;i++) {
cin>>f[i]>>s[i];
ind[f[i]].push_back(i);
ind[s[i]].push_back(i);
}
for(int i=1;i<=n;i++) {
if(ind[i].size()%2==1) {
out<<"-1\n";
return 0;
}
}
dfs(1);
for(int i=1;i<vf;i++) {
cout<<ans[i]<<" ";
}
cout<<"\n";
return 0;
}