#!/usr/bin/python3 # Formát vstupu: # Na prvním řádku počet vrcholů a hran, na dalších řádcích vždy popis jedné hrany # (dvojice čísel vrcholů, číslujeme od nuly). # Formát výstupu: # Posloupnost čísel vrcholů udávající, v jakém pořadí si mají předávat helmici. # Ukázkový vstup: # 9 8 # 0 1 # 0 2 # 1 3 # 1 4 # 1 5 # 2 6 # 6 7 # 6 8 # Ukázkový výstup: # 0 # 3 # 4 # 5 # 1 # 6 # 7 # 8 # 2 N, M = map(int, input().split()) from collections import defaultdict S = defaultdict(lambda: []) # seznam sousedů pro každý vrchol for i in range(M): a,b = map(int, input().split()) S[a].append(b) S[b].append(a) Z = set() # značky: množina vrcholů, které už jsme navštívili def najdi_plan(u, obrat): if u in Z: return Z.add(u) if not obrat: print(u) for v in S[u]: najdi_plan(v, not obrat) if obrat: print(u) najdi_plan(0, False)