만드는 중입니다

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

순환로

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

요약
S에서 출발해 같은 칸을 두 번 지나지 않고 걸을 때, 걷기가 끝날 수 있는 칸의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
그래프, DFS, 트리
정답자
아직 제출이 없습니다

문제

베이트랜드의 수도 바이트타운에 비트라는 소년이 산다. 그는 고향 도시를 돌아다니며 산책하기를 좋아한다.

바이트타운의 도로망은 NN개의 광장과 이 광장들을 잇는 MM개의 거리로 이루어져 있다. 어느 광장에서든 거리를 따라 다른 모든 광장으로 갈 수 있다.

어떤 광장에서 출발해 거리를 따라 움직여 같은 광장으로 돌아올 수 있다면, 그 경로를 순환로라고 부른다. 단, 경로 중간에 어떤 광장이나 거리도 두 번 지나면 안 된다. 바이트타운 도로망의 특징은 어떤 광장도 두 개 이상의 순환로에 속하지 않는다는 점이다.

비트는 방금 앞으로의 산책 방법에 관한 새 계획을 세웠다. 매일 그는 집 앞 광장에서 출발한다. 출발한 광장에서 거리 하나를 골라 따라가면 다음 광장에 도착하고, 거기서 다시 다른 거리를 골라 계속 나아간다. 한 번의 산책에서 그는 같은 광장을 두 번 방문하지 않는다. 그는 모든 거리가 이미 방문한 광장으로 이어지는 광장에 도착할 때까지 걷는다. 그런 광장에 이르면 그날 산책을 마친 것으로 하고 버스를 타고 집으로 돌아간다.

비트의 산책이 끝날 수 있는 서로 다른 광장의 수를 구하는 프로그램을 작성하라.

입력

첫 줄에 공백으로 구분된 정수 NN, MM, SS가 주어진다. NN은 광장의 수, MM은 거리의 수, SS는 비트의 집 앞에 있는 광장의 번호이다. 제약은 2≤N≤200 0002 \le N \le 200\,000, N−1≤M≤43NN-1 \le M \le \frac{4}{3}N, 1≤S≤N1 \le S \le N 이다.

이어지는 MM개의 줄에는 각각 정수 AiA_i와 BiB_i가 주어진다 (1≤Ai≤N1 \le A_i \le N, 1≤Bi≤N1 \le B_i \le N, Ai≠BiA_i \ne B_i). 이는 광장 AiA_i와 BiB_i 사이에 거리가 있다는 뜻이다. 두 광장 사이의 거리는 최대 하나뿐이다.

출력

정수 하나를 한 줄에 출력한다. 그 값은 비트의 산책이 끝날 수 있는 광장의 수이다.

예제2

  1. 예제 1

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

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