#302. 会合

会合

题目描述

给定一个n\red {n}个顶点的有向图,每个顶点有且仅有一条出边。

对于顶点i\red {i},记它的出边为(i,a[i])\red {(i, a[i])}。

再给出q\red {q}组询问,每组询问由两个顶点a、b\red {a、b}组成,要求输出满足下面条件的x、y\red {x、y}:

  1. 从顶点a\red {a}沿着出边走x\red {x}步和从顶点b\red b沿着出边走y\red y步后到达的顶点相同。
  2. 在满足条件1\red {1}的情况下max(x,y)\red {max(x,y)}最小。
  3. 在满足条件1\red {1}和2\red {2}的情况下min(x,y)\red {min(x,y)}最小。
  4. 在满足条件1、2\red {1、2}和3\red 3的情况下x>=y\red {x>=y}。

如果不存在满足条件1\red {1}的x、y\red {x、y},输出−1−1\red {-1 -1}。

输入格式

第一行两个正整数n\red {n}和q\red {q}。

第二行n\red {n}个正整数a[1],a[2],…,a[n]\red {a[1],a[2],…,a[n]}。

下面q\red {q}行,每行两个正整数a,b\red {a,b},表示一组询问。

输出格式

输出q\red {q}行,每行两个整数。

样例

输入样例

12 5
4 3 5 5 1 1 12 12 9 9 7 1
7 2
8 11
1 2
9 10
10 5

输出样例

2 3
1 2
2 2
0 1
-1 -1

提示

n,q≤500000\red {n,q≤500000},

a[i]≤n\red {a[i]≤n},

a,b≤n\red {a,b≤n}