<prompt> Umepewa safu njia zinazowakilisha njia za basi ambapo njiai ni njia ya basi ambayo basi ya ith hurudia milele. Kwa mfano, ikiwa njia0 1, 5, 7, hii ina maana kwamba basi 0th husafiri katika mlolongo 1 - 5 - 7 - 1 - 5 - 7 - 1 - ... milele.Utaanzia kwenye kituo cha basi chanzo Hapo mwanzo hauko kwenye basi lolote, na unataka kwenda kwenye kituo cha basi lengo. Unaweza kusafiri kati ya vituo vya mabasi kwa mabasi pekee.Rejesha _idadi ndogo zaidi ya mabasi unayopaswa kuchukua ili kusafiri kutoka_ chanzo _hadi_ lengwa. Rudisha -1 ikiwa haiwezekani.Mfano wa 1:Ingizo: njia 1,2,7,3,6,7, chanzo 1, lengwa 6Pato: 2Maelezo: Mbinu bora ni kuchukua basi la kwanza hadi kituo cha basi 7, kisha kuchukua basi la pili hadi kituo cha basi 6.Mfano wa 2:Ingizo: njia 7,12,4,5,15,6,15,19,9,12,13 , chanzo 15, lengo 12Pato: -1Vikwazo: 1 njia.urefu 500. 1 njiai.urefu 105 Thamani zote za njiai ni kipekee. jumlanjiai.urefu 105 0 njiaij 106 0 chanzo, lengwa 106  <response>: kutoka kwa makusanyo leta defaultdict, dequedef numBusesToDestinationnjia, chanzo, lengo: ikiwa chanzo lengo: kurudi 0 stop_route_map defaultdictset kwa mimi, njia katika enumeratenjia: kwa kusimama njiani: ramani_ya_njiaacha.ongezai foleni dequechanzo alitembelea_vyanzo chanzo uhamisho 0 wakati foleni: saizi len foleni kwa _ katika masafasaizi: curr queue.popleft ikiwa curr lengo: uhamisho wa kurudi kwa njia katika stop_route_mapcurr: kwa kusimama katika njiaroute: ikiwa haiko katika vyanzo_vilivyotembelewa: foleni.ongezasimama alitembelea_sources.ongezakomesha stop_route_mapcurr.ondoanjia uhamisho 1 kurudi -1 