CSES - Planeetat II
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Pelaat peliä, jossa on nn planeettaa ja jokaisella planeetalla on teleportti jollekin planeetalle.

Tehtäväsi on käsitellä qq kyselyä muotoa: kun aloitat planeetalta aa, montako askelta tarvitset vähintään, jotta pääset planeetalle bb?

Syöte

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

Seuraavalla rivillä on nn kokonaislukua x1,x2,,xnx_1,x_2,\dots,x_n: kunkin teleportin kohde. On mahdollista, että xi=ix_i=i eli teleportti johtaa samalle planeetalle.

Lopuksi syötteessä on qq riviä, jotka kuvaavat kyselyt. Jokaisella rivillä on kaksi kokonaislukua aa ja bb: aloitat planeetalta aa ja haluat päästä planeetalle bb.

Tuloste

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

Rajat

  • 1n,q21051 \le n, q \le 2 \cdot 10^5
  • 1xi,a,bn1 \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