<prompt> Unapewa safu vitabu ambapo vitabui thicknessi, heighti inaonyesha unene na urefu wa kitabu ith. Pia unapewa shelfWidth kamili.Tunataka kuweka vitabu hivi kwa mpangilio kwenye rafu za kabati za vitabu ambazo zina jumla ya upana shelfWidth.Tunachagua baadhi ya vitabu vya kuweka kwenye rafu hii ili kwamba jumla ya unene wao ni chini ya au sawa na shelfWidth, kisha tujenge kiwango kingine cha rafu ya kabati la vitabu ili urefu wa jumla wa kabati la vitabu uongezeke kwa urefu wa juu wa vitabu sisi tu kuweka chini. Tunarudia utaratibu huu hadi kusiwe na vitabu zaidi vya kuweka.Kumbuka kwamba katika kila hatua ya mchakato hapo juu, mpangilio wa vitabu tunavyoweka ni sawa na mlolongo uliotolewa wa vitabu. Kwa mfano, ikiwa tuna orodha iliyoagizwa ya vitabu 5, tunaweza kuweka kitabu cha kwanza na cha pili kwenye rafu ya kwanza, kitabu cha tatu kwenye rafu ya pili, na kitabu cha nne na cha tano kwenye rafu ya mwisho.Rudisha _kimo cha chini kabisa kinachowezekana ambacho jumla ya rafu ya vitabu inaweza kuwa baada ya kuweka rafu kwa njia hii_.Mfano wa 1:Ingizo: vitabu 1,1,2,3,2,3,1,1,1,1, 1,1,1,2, Upana wa rafu 4Pato: 6Maelezo:Jumla ya urefu wa rafu 3 ni 1 3 2 6.Ona kwamba kitabu nambari 2 si lazima kiwe kwenye rafu ya kwanza.Mfano wa 2:Ingizo: vitabu 1,3,2,4,3,2, rafuUpana 6Pato: 4Vikwazo: 1 vitabu.urefu 1000 1 thicknessi shelfWidth 1000 1 urefu 1000  <response>: def max_uncrossed_linesnambari1, nambari2: m, n leninambari1, leninambari2 dp 0 n 1 kwa _ katika safum 1 kwa i katika masafa 1, m 1: kwa j katika safu1, n 1: ikiwa nums1i - 1 nums2j - 1: dpij dpi - 1j - 1 1 kwingine: dpij maxdpi - 1j, dpij - 1 rudisha dpmn 