#include using namespace std; int main() { int N,M; cin >> N >> M; vector>road(N); for(int i = 0; i < M; i++) { int a,b; cin >> a >> b; a--; b--; road[a].push_back(b); road[b].push_back(a); } vectordist(N,-1); dist[0] = 0; queueque; que.push(0); while (!que.empty()) { int x = que.front(); que.pop(); for(int i = 0; i < road[x].size(); i++) { if(dist[road[x][i]] == -1) { dist[road[x][i]] = dist[x]+1; que.push(road[x][i]); } } } cout << dist[N-1] << endl; }