Pagini recente » Cod sursa (job #863717) | Cod sursa (job #2116425) | Cod sursa (job #1678927) | Cod sursa (job #2748789) | Cod sursa (job #2541352)
#include <iostream>
#include <cstdio>
#include <vector>
#define NMAX 100000
#define MMAX 500000
#define pii pair<int, int>
#define nod first
#define muchie second
using namespace std;
int n, m;
int uz[MMAX + 5];
vector<pii> v[NMAX + 5];
void dfs(int x, int ok) {
pii y;
while(!v[x].empty()) {
y = v[x].back();
v[x].pop_back();
if(uz[y.muchie])
continue;
uz[y.muchie] = 1;
dfs(y.nod, 0);
}
if(!ok)
printf("%d ", x);
}
int main() {
freopen("ciclueuler.in", "r", stdin);
freopen("ciclueuler.out", "w", stdout);
int x, y;
scanf("%d %d", &n, &m);
for(int i = 1; i <= m; i++) {
scanf("%d %d", &x, &y);
v[x].push_back({y, i});
v[y].push_back({x, i});
}
for(int i = 1; i <= n; i++)
if(v[i].size() % 2 == 1) {
printf("-1");
return 0;
}
dfs(1, 1);
return 0;
}