#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
const int MAXN=500005;
const int INF=1e9;
vector<int> adj[MAXN];
int dist[MAXN];
int parent[MAXN];
void bfs(int a, int n){
for(int i=1; i<n+1; i++){
dist[i]=INF;
parent[i]=-1;
}
queue <int> q;
dist[a]=0;
q.push(a);
while(!q.empty()){
int v=q.front();
q.pop();
for(int u: adj[v]){
if(dist[u]==INF){
dist[u]=dist[v]+1;
parent[u]=v;
q.push(u);
}
}
}
}
vector<int> scie(int k){
if(dist[k]==INF)
return {};
vector<int> path;
for(int v=k; v!=-1; v=parent[v])
path.push_back(v);
reverse(path.begin(), path.end());
return path;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,m;
cin>>n>>m;
for(int i=0; i<m; i++){
int a,b;
cin>>a>>b;
adj[a].push_back(b);
adj[b].push_back(a);
}
int start=1;
int target=n;
bfs(start, target);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTj01MDAwMDU7CmNvbnN0IGludCBJTkY9MWU5Owp2ZWN0b3I8aW50PiBhZGpbTUFYTl07CmludCBkaXN0W01BWE5dOwppbnQgcGFyZW50W01BWE5dOwoKCnZvaWQgYmZzKGludCBhLCBpbnQgbil7CgkKCWZvcihpbnQgaT0xOyBpPG4rMTsgaSsrKXsKCQlkaXN0W2ldPUlORjsKCQlwYXJlbnRbaV09LTE7Cgl9CgkKCXF1ZXVlIDxpbnQ+IHE7CgkKCWRpc3RbYV09MDsKCXEucHVzaChhKTsKCQoJCgl3aGlsZSghcS5lbXB0eSgpKXsKCQlpbnQgdj1xLmZyb250KCk7CgkJcS5wb3AoKTsKCQkKCQlmb3IoaW50IHU6IGFkalt2XSl7CgkJCWlmKGRpc3RbdV09PUlORil7CgkJCQlkaXN0W3VdPWRpc3Rbdl0rMTsKCQkJCXBhcmVudFt1XT12OwoJCQkJcS5wdXNoKHUpOwoJCQl9CgkJfQoJfQp9Cgp2ZWN0b3I8aW50PiBzY2llKGludCBrKXsKCWlmKGRpc3Rba109PUlORikKCXJldHVybiB7fTsKCQoJdmVjdG9yPGludD4gcGF0aDsKCWZvcihpbnQgdj1rOyB2IT0tMTsgdj1wYXJlbnRbdl0pCglwYXRoLnB1c2hfYmFjayh2KTsKCQoJcmV2ZXJzZShwYXRoLmJlZ2luKCksIHBhdGguZW5kKCkpOwoJcmV0dXJuIHBhdGg7Cn0KCgppbnQgbWFpbigpIHsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShOVUxMKTsKaW50IG4sbTsKY2luPj5uPj5tOwpmb3IoaW50IGk9MDsgaTxtOyBpKyspewoJaW50IGEsYjsKCWNpbj4+YT4+YjsKCWFkalthXS5wdXNoX2JhY2soYik7CglhZGpbYl0ucHVzaF9iYWNrKGEpOwp9CgppbnQgc3RhcnQ9MTsKaW50IHRhcmdldD1uOwpiZnMoc3RhcnQsIHRhcmdldCk7CgoKCgoKCXJldHVybiAwOwp9