만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

당신의 인생

면접 대비

시간 제한1초메모리 제한256 MB

요약
앞쪽으로만 이동하는 방향 그래프에서 1번 정점에서 N번 정점까지 최소 이동 횟수를 구하고 도달할 수 없으면 -1을 출력합니다.
난이도

쉬움10점 중 3점

유형
BFS, 최단 경로, 그래프
정답자
아직 제출이 없습니다

문제

꿈을 이루는 과정에서 일어날 수 있는 상황의 관계를 그래프로 나타낸다. 수많은 상황을 NN개로 압축하고 1번부터 NN번까지 번호를 붙였다. 당신은 지금 1번 상황에 있고, NN번 상황이 당신이 이루려는 유일한 꿈이다.

상황은 당신의 선택에 따라 바뀐다. 선택할 수 있는 변화는 모두 MM개이며 xx, yy 형태로 주어진다. 이는 xx번 상황에 있을 때 yy번 상황으로 가는 선택을 할 수 있다는 뜻이고, x<yx < y가 보장된다.

당신은 꿈을 이룰 수 있는가? 이룰 수 있다면 상황이 바뀌는 횟수를 최소로 줄였을 때 몇 번 만에 꿈을 이루는가?

입력

첫째 줄에 자연수 NN과 MM이 공백으로 구분되어 주어진다. 1≤N≤1000001 \le N \le 100000이고 0≤M≤2000000 \le M \le 200000이다.

다음 MM개의 줄에 자연수 xx와 yy가 공백으로 구분되어 주어진다. 1≤x<y≤N1 \le x < y \le N이다. 같은 변화가 두 번 이상 주어질 수 있다.

출력

꿈을 이룰 수 있으면 필요한 상황 변화 횟수의 최솟값을 출력하고, 이룰 수 없으면 -1을 출력한다.

힌트

첫 번째 예제에서는 1번에서 2번으로, 다시 2번에서 4번으로 상황을 바꾸면 두 번 만에 꿈을 이룬다.

예제2

  1. 예제 1

    입력
    4 4
    1 2
    2 3
    3 4
    2 4
    
    예상 출력
    2
    
  2. 예제 2

    입력
    1 0
    
    예상 출력
    0