CSES - Teleportit II
  • Time limit: 1.00 s
  • Memory limit: 128 MB

Uolevi pelaa peliä, jossa on nn tasoa. Jokaisella tasolla on teleportti, josta pääsee jollekin toiselle tasolle.

Tehtäväsi on vastata joukkoon kyselyitä. Jokaisessa kyselyssä Uolevi haluaa päästä tasolta aa tasolle bb, ja tehtäväsi on selvittää, mikä on pienin määrä teleportteja, joiden kautta Uolevin tavoite onnistuu.

Syöte

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

Seuraavalla rivillä on nn lukua t1,t2,,tnt_1,t_2,\ldots,t_n. Luku tit_i kertoo, mille tasolle tason ii teleportista pääsee.

Lopuksi syötteessä on qq riviä, jotka kuvaavat kyselyt. Jokaisella rivillä on kaksi kokonaislukua aa ja bb: Uolevi haluaa päästä tasolta aa tasolle bb. Uolevi haluaa aina päästä toiselle tasolle kuin mistä aloittaa eli aba \neq b.

Tuloste

Tulosta jokaiseen kyselyyn pienin määrä, monenko teleportin kautta Uolevin täytyy kulkea, jotta hän pääsee tasolta aa tasolle bb. Jos tämä ei ole mahdollista, tulosta 1-1.

Rajat

  • 1n,q1051 \le n,q \le 10^5
  • 1a,bn1 \le a,b \le n

Esimerkki

Syöte:

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

Tuloste:

2
-1
1