Đẩy hộp

Xem PDF

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bài toán

Cho đồ thị có hướng gồm \(N\) đỉnh, \(M\) cạnh và \(K\) chiếc hộp trên các đỉnh. Trên mỗi đỉnh có chứa \(0\) hoặc \(1\) chiếc hộp. Tại mỗi bước, bạn có thể đẩy hộp từ một đỉnh đến một đỉnh khác chưa có hộp. Hộp sẽ tự hủy khi đến đỉnh \(1\).

Hãy tính số bước đẩy ít nhất để đẩy tất cả các hộp đến đỉnh \(1\).

Input

  • Dòng đầu tiên chứa \(3\) số nguyên dương \(N, M, K\) (\(1 \leq K \leq N \leq 10000, \; 0 \leq M \leq 50000\)).
  • Dòng thứ hai chứa \(K\) số nguyên dương khác nhau, lần lượt là các đỉnh chứa hộp.
  • \(M\) dòng tiếp theo, mỗi dòng chứa \(2\) số nguyên dương \(u, v\) mô tả đường đi từ \(u\) đến \(v\).

Output

  • In ra số bước đẩy ít nhất.

Example

Test

Input
4 3 3
2 3 4
3 1
2 1
4 2
Success
4

Bình luận

Không có bình luận nào.