Cho một cây có gốc gồm đỉnh, đánh số từ đến . Đỉnh là gốc. Với mỗi đỉnh từ đến , input cho biết cha trực tiếp của ; luôn có . Vì vậy, các quan hệ cha tạo thành đúng một cây.
Một đỉnh được gọi là tổ tiên của nếu hoặc có thể đi từ lên cha trực tiếp một số lần để tới . Với hai đỉnh , tổ tiên chung gần nhất của chúng là tổ tiên chung có độ sâu lớn nhất, tức đỉnh chung đầu tiên gặp được khi lần lượt đi từ và về gốc.
Hãy trả lời truy vấn, mỗi truy vấn yêu cầu tìm tổ tiên chung gần nhất của hai đỉnh đã cho.
Input
- Dòng đầu chứa hai số nguyên .
- Dòng thứ hai chứa số nguyên , trong đó là cha trực tiếp của đỉnh .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên mô tả một truy vấn.
- Khi , dòng thứ hai không chứa số nào và có thể được bỏ qua.
Output
- Với mỗi truy vấn, in trên một dòng chỉ số của tổ tiên chung gần nhất của hai đỉnh tương ứng.
Constraints
- .
- với mọi .
- .
- Các giới hạn áp dụng cho một test duy nhất; input không có nhiều test case.
Scoring
- Subtask ( điểm): .
- Subtask ( điểm): không có giới hạn bổ sung.
Example
Test 1
Input
8 5 1 1 2 2 3 6 6 4 5 4 7 7 8 3 8 1 5
Output
2 1 6 3 1
Giải thích: Hai đỉnh cùng nằm dưới đỉnh , còn thuộc hai nhánh của gốc nên có đáp án . Với , đỉnh chung sâu nhất là ; với là ; còn gốc là tổ tiên của mọi đỉnh.