/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in);
int n = sc.nextInt();
int edges = sc.nextInt();
List
<Integer
>[] adjList
= new List[n
+ 1]; for (int i = 0; i <= n; i++) {
adjList[i] = new ArrayList<>();
}
for (int i = 0; i < edges; i++) {
int u = sc.nextInt();
int v = sc.nextInt();
adjList[u].add(v);
adjList[v].add(u);
}
sc.close();
runDFS(n, adjList);
}
public static void runDFS(int vertices, List<Integer>[] adjList) {
boolean[] visited = new boolean[vertices + 1];
for (int i = 1; i <= vertices; i++) {
if (!visited[i]) {
dfs(i, adjList, visited);
}
}
}
private static void dfs(int currentNode, List<Integer>[] adjList, boolean[] visited) {
visited[currentNode] = true;
System.
out.
print(currentNode
+ " -> ");
for (int neighbor : adjList[currentNode]) {
if (!visited[neighbor]) {
dfs(neighbor, adjList, visited);
}
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoKICAgICAgICBpbnQgbiA9IHNjLm5leHRJbnQoKTsKICAgICAgICBpbnQgZWRnZXMgPSBzYy5uZXh0SW50KCk7CgogICAgICAgIExpc3Q8SW50ZWdlcj5bXSBhZGpMaXN0ID0gbmV3IExpc3RbbiArIDFdOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBhZGpMaXN0W2ldID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVkZ2VzOyBpKyspIHsKICAgICAgICAgICAgaW50IHUgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgIGludCB2ID0gc2MubmV4dEludCgpOwogICAgICAgICAgICBhZGpMaXN0W3VdLmFkZCh2KTsKICAgICAgICAgICAgYWRqTGlzdFt2XS5hZGQodSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHNjLmNsb3NlKCk7CgogICAgICAgIHJ1bkRGUyhuLCBhZGpMaXN0KTsKICAgIH0KICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBydW5ERlMoaW50IHZlcnRpY2VzLCBMaXN0PEludGVnZXI+W10gYWRqTGlzdCkgewogICAgICAgIGJvb2xlYW5bXSB2aXNpdGVkID0gbmV3IGJvb2xlYW5bdmVydGljZXMgKyAxXTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gdmVydGljZXM7IGkrKykgewogICAgICAgICAgICBpZiAoIXZpc2l0ZWRbaV0pIHsKICAgICAgICAgICAgICAgIGRmcyhpLCBhZGpMaXN0LCB2aXNpdGVkKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVuZCIpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZGZzKGludCBjdXJyZW50Tm9kZSwgTGlzdDxJbnRlZ2VyPltdIGFkakxpc3QsIGJvb2xlYW5bXSB2aXNpdGVkKSB7CiAgICAgICAgdmlzaXRlZFtjdXJyZW50Tm9kZV0gPSB0cnVlOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnQoY3VycmVudE5vZGUgKyAiIC0+ICIpOwoKICAgICAgICBmb3IgKGludCBuZWlnaGJvciA6IGFkakxpc3RbY3VycmVudE5vZGVdKSB7CiAgICAgICAgICAgIGlmICghdmlzaXRlZFtuZWlnaGJvcl0pIHsKICAgICAgICAgICAgICAgIGRmcyhuZWlnaGJvciwgYWRqTGlzdCwgdmlzaXRlZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0=