#include #define rep(i, n) for (int i = 0; i < n; ++i) typedef long long ll; using namespace std; int main() { int N, M; cin >> N >> M; vector> G(N); rep(i, M) { int a, b; cin >> a >> b; a--, b--; G[a].push_back(b); G[b].push_back(a); } vector d(N, -1); d[0] = 0; queue que; que.push(0); while (!que.empty()) { int u = que.front(); que.pop(); for (int v : G[u]) { if (d[v] == -1) { d[v] = d[u] + 1; que.push(v); } } } cout << d[N - 1] << endl; return 0; }