CSES - Planeetat II
  • Time limit: 1.00 s
  • Memory limit: 512 MB
Pelaat peliä, jossa on $n$ planeettaa ja jokaisella planeetalla on teleportti jollekin planeetalle.

Tehtäväsi on käsitellä $q$ kyselyä muotoa: kun aloitat planeetalta $a$, montako askelta tarvitset vähintään, jotta pääset planeetalle $b$?

Syöte

Syötteen ensimmäisellä rivillä on kaksi kokonaislukua $n$ ja $q$: planeettojen määrä ja kyselyiden määrä. Planeetat on numeroitu kokonaisluvuin $1,2,\dots,n$.

Seuraavalla rivillä on $n$ kokonaislukua $x_1,x_2,\dots,x_n$: kunkin teleportin kohde. On mahdollista, että $x_i=i$ eli teleportti johtaa samalle planeetalle.

Lopuksi syötteessä on $q$ riviä, jotka kuvaavat kyselyt. Jokaisella rivillä on kaksi kokonaislukua $a$ ja $b$: aloitat planeetalta $a$ ja haluat päästä planeetalle $b$.

Tuloste

Tulosta jokaiseen kyselyyn vastauksena pienin askelten määrä, jolla pääset planeetalta $a$ planeetalle $b$. Jos tämä ei ole mahdollista, tulosta $-1$.

Rajat
  • $1 \le n, q \le 2 \cdot 10^5$
  • $1 \le x_i, a, b \le n$
Esimerkki

Syöte:
5 3
2 4 3 1 4
5 2
3 1
2 2


Tuloste:
3
-1
0