PROMPT_TEMPLATE = """
You are tasked with solving a Hamiltonian Path Puzzle.

### Rules:
A **Hamiltonian Path** in an undirected graph is a path that visits every vertex exactly once. The task is to determine whether a Hamiltonian Path exists in the given graph.

The graph is represented as follows:
- The first line contains a single integer `N`, which is the number of vertices in the graph.
- The subsequent lines each describe an edge in the graph. Each edge is represented by two space-separated integers `u` and `v`, which indicate that there is an undirected edge between vertex `u` and vertex `v`.
- The vertices are numbered from `0` to `N-1`.
    
### Response Format:
- Please output your answer within a code block (```) as follows:
```
<result>
```
- <result> should be a list of vertex indices that form the Hamiltonian Path if it exists, for example:
```
[0, 2, 3, 1, 0]
```
- If no Hamiltonian Path exists, <result> should be "NO".
Here is the puzzle:
{question} 
""".strip()