Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- def q():
- print(-1)
- exit()
- answer = list()
- def fleury(u, n, m):
- while cnt[u]:
- for i in range(n[0]):
- if g[u][i] > 0:
- v = i
- break
- m[0] -= 1
- g[u][v] -= 1
- if u != v:
- g[v][u] -= 1
- cnt[u] -= 1
- cnt[v] -= 1
- fleury(v, n, m)
- answer.append(u + 1)
- if __name__ == '__main__':
- n, m = map(int, input().split())
- g = [[0 for x in range(n)] for y in range(n)]
- cnt = [0 for i in range(n)]
- for i in range(m):
- x, y = map(int, input().split())
- x -= 1
- y -= 1
- if i == 0:
- start = x
- g[x][y] += 1
- if x != y:
- g[y][x] += 1
- cnt[x] += 1
- cnt[y] += 1
- v1 = -1
- v2 = -1
- for i in range(n):
- if cnt[i] % 2 == 1:
- if v1 == -1:
- v1 = i
- start = i
- elif v2 == -1:
- v2 = i
- else:
- q()
- if v1 == -1:
- v1 = start
- m = [m]
- n = [n]
- fleury(v1, n, m)
- cnt = []
- if m[0] != 0:
- q()
- print(len(answer))
- print(' '.join(map(str, answer)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement