print(max(n_1,n_2,n_0)) M = int(iroot(max(n_1,n_2,n_0),2)[0]) m = matrix (ZZ,[[M,e_0,e_1,e_2],[0,-n_0,0,0],[0,0,-n_1,0],[0,0,0,-n_2]]) res = m.LLL()[0] M_d = res[0] d = M_d//M print(long_to_bytes(int(pow(c_1,d,n_1))))
from Crypto.Util.number import * c = 286605218507608279202129771918531271946671507626305024953248295895988333961618873954640005595372301341467413016908150677673635722256023730324681401428319225361363999142046537859459409916981367761561114799184280307872980415343132055088498803165594628548662583640326942437149149350520704205500295809038020422457717121048482596636502649958934136981194150511045479471586872164085401140285524759579050155909038507343038174154593337809311866087143093807467622362148641288458960895133762797579445793401378458722430674480127009593346348738518019040387116224822441941294329872991492625964232070720738157400687938977121855098226487473098692442323295021708959030333536870489486659860194145953876253749042832809475881890766076140590935127155677982927543806757574744622901559032730503753795989374828643752328153099868911862925159739950768217245728385503951198131505619930567967616843516131655086992550975654515595211265659201508391208585700785161068709702940719004537390468443797005684611185138008737656926216379855891053354777774384890718888338876478641463885204017543596283159433296917180579907613266788994571545756318342861847715142229441992506185551166325784680848595830171481522613646942120292994260729939968265593422608973270825916828492544664299871676604751187707446221684224968343723624943981363582225792593421766569640376969316119852229910483667108880295374651932751905724421983437967297322892828528208291702056480652221786839830262568767505519035071062740423997398239830057937950769564169367507095190384380175646264585757318362376188860991986875714282394980987037817330032973470671691475171707672675309570489936641877942899184832894395663802575381274953602946158272692789777918695950154965094417582231067265232619858157960243469666284173122639096579318616593605874089448119619113973085646895839523517297934650940122310756350873425553136101151056680013380349701958665772345098953165900722610809127676823000647427841767325888409726931226381361164384623030325151424771900338396699817726437235865324580847369458851938896661773262383710535161134695260264842668565585676477402587141089614009465734740933104864395815815866107368691860801028695310711832807570743906240517911125605062892502417473924306951203772024279670686683490940867837281041052393924435825038108528176083341913995964525020340161586283471200641978840288177413700957210478592481488417240174318458109749698554453042294256932670518004260392417551639031279570625713352666650829725059545911724343454378724048217717 n = 807015319355934202493987023954071180691442715127386148595986388449200843593631520891094615743979153168030088246970989257970036830621595372722242365935754658256884491780092468415223454813183783993676398553548069254772733314464970519010918034665966526528796992899249558868269932526117182999478334998932885861734625397840732588060222643615901190040044859475617233644470461774519430056964173319141176428279982155625854089736620082831368351761689571830301874832695990362570532635666326017747009171284239672618087159628607765587562193376017193347438630870608159409958221148632123956495171209184558432313370763480558881297591947038192493874327977262495215782290404380183097928019655572577604903972837177801283483400031024711029421262352141414871461084620507553601465688029708467032046862475340208057911685819261115507469643577162606815248137862214279429530547740324124486921982160947707402205034973628340358396473783227720251535337643065476806031014509411761770251347925323116560616029982148982791381015296923087790254420668173059307101471872380742666216759717937809906477693759607555341577401757478650571700950789000188537959839639388671274474953016136057290504518082949808954583094636647376750364072532051902803550808546945098876676227557 hint = 459532750394658725058686493080128050567485498823856528912688509796438516683579648745277337790262388672028593267711057916989111557640831058820062117741410593069599247104269636466857739785520028445660106197046918796478992266071240573950265139563799564944217905425555156433042771582428134603844091318831438334623757008672366939414369909308639890615062519731534386648858501674168354428651467824469195462402746921277675354290036653098369822502303799143118750946907039940063166099725237454657376961181554561215282499405930968624659263890131120861248085097028081687484461127813750979900661028213661676736971759082340660747363025795813241012781833110477791643127156253100284569085394772287384996718475275797428239739121684902889449792198311490153362120524401391632890806201025077874324412677620567166513935558833083343851758473486133030423105955359595037622690822082099691750493117919159232598806547754904365390377994617795365886648254587153723397195890181387625152966006790156685482819691532416866417412356137127150081275440943095868545557141372583794798685299639311988517045904231449383147740440319226546278473921805406800033435080809857181761532549753322509920611761856582845868402076990046385975304224881773810882180731755770245521358179684411375690430239118565947846568772212590285434049637476491844692006101639680478553542075252816557019053697313950216290199609188577176850154065359937047788252447606254444436070520230086490619885842829997010377548465166378711563093764692565488785639273342166235346016671168627059966251876683052164020211608550052766677598600491658396651263621639682640551490679617064350440284633798466168268896581397783696151268961607698039266791217122983891032083533786654924904178874531562138194760498109936470632230420389498757174589168611713306405167563248304326998414019122595766707535693246776240623411784820588113535814361065991535557936463316647569521825715949301222670200630918691525065347947877255499283731480427998312860318158543697110569428901661322105704353987895097231873743799575016268850173897276115136193017125407072665600636097187813176632056612018456104111513985713222469163588215669431222357047277130838385703044170854053268883086259844823489876821837415583926984806310612859849504698674215403070693011352981990448490253999232509414225952658279262964174679980213875167780161272931450269390225664108992794140258234522714166712914998667436687292859269092288686741302288065494219978985145670903229550449418226801260723780437472214267
gc = c*inverse(hint,n**2)%n**2 p = (gc-1)//n q = n//p phi = (p-1)*(q-1) d = inverse(n,phi) print(long_to_bytes(pow(hint,d,n)))