#include using namespace std; using ll = int64_t; #define all(x) ::begin(x), ::end(x) #define debug(x...) [](auto&& ...y){ cerr << "["#x"]:"; ((cerr << ' ' << y), ...) << endl; }(x) int main() { cin.tie(0)->sync_with_stdio(0); int n, m; cin >> n >> m; vector> g(n); for (int i=0; i> u >> v; u--, v--; g[u].push_back(v); g[v].push_back(u); } vector d1(n, -1), d2(n, -1); for (int s : {0, n-1}) { queue q{{s}}; d1[s] = 0; while (!q.empty()) { int u = q.front(); q.pop(); for (int v : g[u]) if (d1[v] == -1) { d1[v] = d1[u] + 1; q.push(v); } } swap(d1, d2); } for (int u=0; u