아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Дорожная реформа

시간 제한2초메모리 제한1024 MB

요약
방향이 있는 간선들로 이루어진 그래프에서 한 정점에 붙은 모든 간선의 방향을 한꺼번에 바꾸는 연산으로, 1번에서 n번으로 가는 경로를 만들기 위한 최소 연산 수를 구한다.
난이도

보통10점 중 7점

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

문제

Король Берляндии решил в очередной раз провести дорожную реформу.

Берляндия состоит из nn городов, соединённых mm односторонними дорогами. По каждой из дорог разрешается двигаться только в одну сторону. Двигаться по дороге в противоположную сторону запрещается.

Во время реформы король планирует изменить направление у некоторых дорог так, чтобы существовал путь из города 11 в город nn, проходящий только по дорогам. Из-за сложностей законодательства король может проводить только операции двух типов.

  • Выбрать некоторый город uu. Рассмотрим все города vv такие, что существует дорога между городами uu и vv (направление не важно) и изменим её направление так, чтобы она вела из города vv в город uu.
  • Выбрать некоторый город uu. Рассмотрим все города vv такие, что существует дорога между городами uu и vv (направление не важно) и изменим её направление так, чтобы она вела из города uu в город vv.

Выполнение каждой из этих операций крайне затратно, поэтому короля интересует, какое минимальное количество операций ему придётся произвести, чтобы достичь своей цели. Помогите королю, сообщив ему минимальное количество операций, или определите, что король не сможет достичь своей цели ни за какое количество операций.

입력

В первой строке содержатся два целых числа nn и mm (2≤n≤500,000,0≤m≤1,000,0002 \leq n \leq 500\\,000, 0 \leq m \leq 1\\,000\\,000) --- количество городов и дорог в Берляндии, соответственно.

В следующих mm строках содержатся пары целых чисел u_iu\_i и v_iv\_i (1≤u_i,v_i≤n,u_i≠v_i1 \leq u\_i, v\_i \leq n, u\_i \neq v\_i), описывающие дорогу между городами u_iu\_i и v_iv\_i направленную из u_iu\_i в v_iv\_i. Гарантируется, что между любыми двумя городами есть не более одной дороги (в любом из направлений).

출력

Выведите одно целое число --- минимальное количетсво операций, которые потребуется выполнить королю. Если король не сможет достичь своей своей цели ни за какое количество операций выведите −1-1.

힌트

В первом примере в Берляндии нет дорог, поэтому король не сможет сделать так, чтобы из города 11 можно было доехать до города 22.

Во втором примере изначально из города 11 в город 55 проехать нельзя, но король может выбрать все дороги, у которых одним из концов является город 55 (это дороги 2−52-5 и 5−45-4) и изменить их направление так, чтобы они вели в сторону города 55. После этого из города 11 в город 55 можно будет проехать по маршруту 1−3−4−51-3-4-5.

예제2

  1. 예제 1

    입력
    2 0
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    5 6
    2 1
    1 3
    2 3
    3 4
    2 5
    5 4
    
    예상 출력
    1