În orașul programatorilor există un local celebru unde lumea se poate distra cât dorește, la orice oră. Primarul orașului programatorilor a construit, pornind de la acest local, mai multe străzi către casele tuturor cetățenilor, case codificate cu numere de la la , localul fiind codificat cu . Dacă între o casă și local nu există alte case, atunci drumul este construit direct între cele două imobile, dar dacă între casă și local există și alte case, atunci drumul va fi format din drumul de la local la prima casă, apoi se va construi drumul de la prima casă la a doua casă, apoi de la a doua casă la a treia casă și tot așa până se ajunge la casa curentă.
Orașul este codificat sub forma unui vector , unde dacă imobilul este exact localul unde se pot distra oamenii din oraș sau , cu , cu semnificația că de la casa se poate ajunge la casa/imobilul care se află între local și casa curentă.
Andrei și Alexandru sunt locuitori ai acestui oraș. Ei stau la casele cu codul , respectiv . Ei doresc să se întâlnească în drum spre local unde se vor distra, prin urmare doresc să alfe care este prima casă la care pot amândoi să ajungă, în drum spre local.
Cerința
Pentru întrebări de forma "care este prima casă unde Andrei și Alexandru se pot întâlni, dacă aceștia locuiesc la casele și ?", să se alfe răspunsul la aceste întrebări.
Date de intrare
Pe prima linie se vor găsi numerele și . Pe a doua linie se va găsi vectorul , cu semnificația din enunț, pentru toți indicii de la la . Pentru , se consideră .
Pe următoarele linii se vor găsi câte două numere și , cu semnificația din enunț.
Date de ieșire
Se va afișa răspunsul pentru fiecare întrebare, pe linii diferite.
Restricții și precizări
- ;
- ;
- Există exact un drum de la local la fiecare casă din orașul programatorilor.
- Este recomandat să folosiți citirea rapidă cu aceste linii de cod la începutul funcției
main()
:cin.tie(0)->sync_with_stdio(0);
.
Exemplu
stdin
5 2
1 1 2 2
1 2
4 5
stdout
1
2