#T2103. 行星查询 II(Planets Queries II)

行星查询 II(Planets Queries II)

链接: https://cses.fi/problemset/task/1751

板块: Graph Algorithms

时限: 1.00 s | 内存: 512 MB

题目描述

你正在玩一个由 nn 个行星组成的游戏。每个行星都有一个通向另一个行星(或自身)的传送器。

你需要处理 qq 个形如如下的查询:你现在在行星 aa,想到达行星 bb。最少需要传送多少次?

输入

第一行包含两个整数 nnqq:行星数量和查询数量。行星编号为 1,2,,n1,2,\ldots,n

第二行包含 nn 个整数 t1,t2,,tnt_1,t_2,\ldots,t_n:对应每个行星,传送器的目的地。

最后有 qq 行描述查询。每行包含两个整数 aabb:你现在在行星 aa,想到达行星 bb

输出

对每个查询,输出最少的传送次数。如果无法到达目标,输出 1-1

数据范围

1n,q21051 \le n, q \le 2 \cdot 10^5 1a,bn1 \le a,b \le n

样例输入

5 3
2 3 2 3 2
1 2
1 3
1 4

样例输出

1
2
-1