NUMBER - Biến đổi số

Tags: tarjan, dfs, graph

Problem

https://vn.spoj.com/problems/NUMBER

https://oj.vnoi.info/problem/NUMBER

Cho M máy biến đổi số được đánh số từ 1 đến M và 1 số nguyên dương N. Hoạt động của máy i được xác định bởi cặp số nguyên dương (ai,bi) (1<=ai,bi<=N). Máy nhận đầu vào là số nguyên dương ai và trả lại ở đầu ra số nguyên dương bi.

Ta nói một số nguyên dương X có thể biến đổi thành số nguyên dương Y nếu hoặc X=Y hoặc tồn tại dãy hữu hạn các số nguyên dương X= P1,P2,…,Pk =Y sao cho đối với 2 phần tử liên tiếp Pi và Pi+1 bất kỳ trong dãy, luôn tìm được 1 trong số các máy đã cho để biến đổi Pi thành Pi+1

Cho trước 1 số nguyên dương T (T<=N). Hãy bổ sung thêm 1 số ít nhất các máy biến đổi số để bất kì số nguyên dương nào từ 1 đến N đều có thể biến đổi thành T

Input

  • Dòng 1: 3 số nguyên dương N, M, T (1<=N,M,T<=10^4)
  • M dòng tiếp theo mỗi dòng chứa 1 cặp số tương ứng với một máy biến đổi số. Các số trên một dòng cách nhau bởi 1 dấu cách

Output

Ghi ra 1 dòng duy nhất chứa 1 số nguyên dương là số lượng máy biến đổi số cần thêm

Example

Input
6 4 5
1 3
2 3
4 5
6 5

Output
1

Tutorial


Submission

NUMBER.cpp