package main import ( "bufio" "fmt" "os" ) const N = 5000 func main() { in := bufio.NewReader(os.Stdin) graph := make([][]int, N+1) var n,m int fmt.Fscan(in, &n,&m) for i := 1;i<=m;i++{ var u,v int fmt.Fscan(in, &u,&v) graph[u] = append(graph[u], v) graph[v] = append(graph[v], u) } dist := make([]int, N+1) for i:=range dist { dist[i] = -1 } dist[1] = 0 q := []int{1} for len(q) != 0 { cur := q[0] q = q[1:] for _,v := range graph[cur] { if dist[v] == -1 { dist[v] = dist[cur] + 1 q = append(q, v) } } } fmt.Println(dist[n]) }