<prompt> Unapewa m x n mkusanyiko kamili gridi ambapo kila seli ni 0 tupu au 1 kizuizi. Unaweza kusogea juu, chini, kushoto, au kulia kutoka na hadi kwenye seli tupu katika hatua moja.Rudisha _idadi ya chini kabisa ya hatua ili kutembea kutoka kona ya juu kushoto_ 0, 0 _hadi kona ya chini kulia_ m - 1, n - 1 _ikizingatiwa kuwa unaweza kuondoa kabisa _ k _vikwazo_. Ikiwa haiwezekani kupata matembezi kama hayo rudisha -1.Mfano wa 1:Ingizo: gridi 0,0,0,1,1,0,0,0,0,0,1,1, 0,0,0, k 1Pato: 6Maelezo:Njia fupi bila kuondoa kizuizi chochote ni 10.Njia fupi iliyo na kikwazo kimoja cha kuondoa kwenye nafasi 3,2 ni 6. Njia hiyo ni 0,0 - 0,1 - 0,2 - 1,2 - 2 ,2 - 3,2 - 4,2.Mfano wa 2:Ingizo: gridi 0,1,1,1,1,1,1,0,0, k 1Pato: -1Maelezo: Tunahitaji kuondoa angalau vizuizi viwili ili kupata matembezi kama hayo.Vikwazo: m grid.length n gridi ya taifai.length 1 m, n 40 1 k m n gridiij ama ni 0 au 1. gridi00 gridim - 1n - 1 0  <response>: kutoka kwa makusanyo kuagiza dequedef ShortestPathgridi, k: m, n lenigridi, lenigridi0 alitembelea Si kweli kwa _ masafak 1 kwa _ masafan kwa _ masafam q deque0, 0, 0, k hatua 0, 1, 0, -1, 1, 0, -1, 0 hatua 0 wakati q: kwa _ katika masafalenq: x, y, hatua, k_baki q.popleft ikiwa x m - 1 na y n - 1: hatua za kurudi kwa dx, dy in moves: new_x, new_y, x dx, y dy ikiwa 0 new_x m na 0 new_y n: new_k_reining k_baki - gridinew_xnew_y ikiwa mpya_k_baki 0 na haijatembelewanew_xnew_ynew_k_remaining: alitembeleanew_xnew_ynew_k_reining Kweli q.appendmpya_x, new_y, hatua 1, new_k_salia hatua 1 kurudi -1 