#include #include #include #include using namespace std; const int MAX_N =10000; const int MAX_M =10000; int vertex[MAX_M][MAX_M]; int visited[MAX_M]; int circuit[MAX_M]; int edges[MAX_M]; int circuitpos; void dfs(int s){ bool used = true; while(used){ used=false; for (int i = 0; i < MAX_M; i++) { if (vertex[s][i] > 0) { used = true; vertex[s][i]--; vertex[i][s]--; dfs(i); } } } circuit[circuitpos++] = s; } int main() { ifstream fin("input.txt"); ofstream fout("output.txt"); int n,m; fin >> n>>m; int x, y,u,v; fin >> u>>v; int start = u ; for (int i = 0; i < m; i++) { fin >> x >> y; vertex[x][y]++; vertex[y][x]++; edges[x]++; edges[y]++; start = min(start, min(x, y)); } for (int i = MAX_M; i >= 0; i--) if (edges[i] % 2 != 0) { start = i; } dfs(start); for (int i = circuitpos-1; i >= 1; i--) fout << circuit[i] << circuit[i-1]<< "\n"; return 0; }