Cho đồ thị vô hướng gồm \(n\) đỉnh và \(m\) cạnh. Tìm đường đi ngắn nhất từ \(1\) tới \(n\) .Đảm bảo có thể đi được từ \(1\) tới \(n\).
Input
- Dòng đầu tiên gồm \(2\) số nguyên \(n,m\).
- \(m\) dòng tiếp theo, mỗi dòng gồm \(2\) số nguyên \(u,v\), thể hiện có cạnh nối \(2\) đỉnh này.
Output
- Đầu tiên in ra độ dài đường đi ngắn nhất trên một dòng. Sau đó in ra đường đi ngắn nhất từ \(1\) đến \(n\). Nếu có nhiều hơn \(1\) đường đi, in ra đường đi bất kì.
Điều kiện
- \(1 \le n,m \le 10^5\)
- \(1 \le u,v \le n\)
Sample Input 1
5 5
1 2
1 3
5 3
4 3
3 2
Sample Output 1
2
1 3 5
Nhận xét