P15000 [Nordic OI 2019] Graph Ordering

Description

You are given an undirected connected graph that has $n$ nodes. The nodes are numbered $1, 2, \ldots, n$. Let us consider an ordering of the nodes. The first node in the ordering is called the *source*, and the last node is called the *sink*. In addition, a path is called *valid* if always when we move from node $a$ to node $b$, node $a$ is before node $b$ in the ordering. Your task is to find an ordering such that (1) there is a valid path from the source to every node, and (2) there is a valid path from every node to the sink, or determine that it is not possible to create such an ordering.

Input Format

The first line has two integers $n$ and $m$: the number of nodes and edges. After this, there are $m$ lines that describe the edges. Each line has two integers $a$ and $b$: there is an edge between nodes $a$ and $b$. It is guaranteed that the graph is connected, contains no self-loops and there is at most one edge between every pair of nodes.

Output Format

Print any valid ordering of the nodes. If there are no solutions, print "IMPOSSIBLE".

Explanation/Hint

**Subtask 1 (7 points)** - $2 \leq n \leq 10^5$ - The graph is a tree. **Subtask 2 (29 points)** - $2 \leq n \leq 100$ - $1 \leq m \leq 200$ **Subtask 3 (18 points)** - $2 \leq n \leq 2000$ - $1 \leq m \leq 5000$ **Subtask 4 (21 points)** - $2 \leq n \leq 10^5$ - $1 \leq m \leq 2 \cdot 10^5$ - It is guaranteed that there exists a valid ordering with node 1 as the source, and node $n$ as the sink. **Subtask 5 (25 points)** - $2 \leq n \leq 10^5$ - $1 \leq m \leq 2 \cdot 10^5$