#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; int main() { int n, m; cin>>n>>m; vector g[200020]; for(int i=0; i>u>>v; u--; v--; g[u].push_back(v); g[v].push_back(u); } int d[200020]; fill(d, d+n, n); d[0]=0; queue que; que.push(0); while(!que.empty()){ int x=que.front(); que.pop(); for(auto y:g[x]){ if(d[y]>d[x]+1){ d[y]=d[x]+1; que.push(y); } } } if(d[n-1]==n) cout<<-1<