#302. 会合

会合

题目描述

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

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

再给出q\red {q}组询问,每组询问由两个顶点ab\red {a、b}组成,要求输出满足下面条件的xy\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. 在满足条件12\red {1、2}3\red 3的情况下x>=y\red {x>=y}

如果不存在满足条件1\red {1}xy\red {x、y},输出11\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,q500000\red {n,q≤500000},

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

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