바이트아사르는 화살 동굴의 관리인입니다. 이 동굴은 연인들이 즐겨 찾는 만남의 장소입니다. 동굴에는 n개의 방이 있고, 방들은 일방통행 통로로 연결되어 있습니다. 각 방에서 나가는 통로 중 정확히 하나에 화살표가 그려져 있으며, 모든 통로는 어떤 방(자기 자신일 수도 있습니다)으로 곧장 이어집니다.
화살 동굴에서 만나기로 한 연인들은 정확한 방을 정하지 않는 경우가 많아 서로를 찾지 못하곤 합니다. 각 방에 당직 관리인과 연결되는 비상 전화가 설치된 뒤로, 연인들이 서로를 찾도록 돕는 일이 관리인의 주된 업무가 되었습니다.
관리인들은 다음 방법을 씁니다. 두 사람의 현재 위치를 알고 있을 때, 각자 화살표를 몇 번 따라가면 같은 방에서 만날 수 있는지 알려 줍니다. 연인들은 되도록 빨리 만나고 싶어 하므로, 두 값 중 더 큰 값이 가능한 한 작은 답이 좋은 답입니다.
바이트아사르는 이 일이 번거로워 여러분에게 프로그램 작성을 부탁했습니다. 동굴의 구조와 k쌍의 연인의 현재 위치가 주어질 때, i번째 쌍에 대해 다음을 만족하는 두 수 xi, yi를 출력하세요.
그러한 xi, yi가 존재하지 않으면 xi=yi=−1을 출력합니다. 여러 쌍이 같은 방에서 만나도 괜찮습니다.
첫째 줄에 방의 수 n과 연인 쌍의 수 k가 공백 하나로 구분되어 주어집니다 (1≤n≤500000, 1≤k≤500000). 방은 1번부터 n번까지 번호가 매겨져 있습니다.
둘째 줄에는 n개의 정수가 주어지며, i번째 정수는 i번 방에서 나가는 화살표가 가리키는 방의 번호입니다.
이어지는 k개의 줄에 각 쌍의 질의가 주어집니다. 각 줄에는 두 정수가 공백 하나로 구분되어 주어지며, 먼저 남자가 있는 방, 그다음 여자가 있는 방의 번호입니다.
전체 점수의 40%에 해당하는 테스트에서는 추가로 n≤2000, k≤2000을 만족합니다.
정확히 k개의 줄을 출력합니다. i번째 줄에는 i번째 쌍에 대한 xi와 yi를 공백 하나로 구분하여 출력합니다.