/* vim: set ts=4 sts=4 sw=4 si foldmethod=marker: */ #include #include #include #include #include using namespace std; bool isfib(const string* fibs, const string& x) // {{{ { for (size_t i(1); i < 500; ++i) if (fibs[i] == x) return true; return false; } // }}} int compare(const string& a, const string& b) // {{{ { if (a.length() != b.length()) return (a.length() < b.length()) ? -1 : 1; for (string::const_iterator ai(a.begin()), bi(b.begin()), ae(a.end()); ai != ae; ++ai, ++bi) if (*ai != *bi) return (*ai < *bi) ? -1 : 1; return 0; } // }}} size_t index(const string* fibs, const string& x) // {{{ { for (size_t i(1); i < 500; ++i) switch (compare(x, fibs[i])) { case 0: return i; break; case -1: return i-1; break; default: case 1: continue; break; } return -1; } // }}} int main() { // fibs {{{ string fibs[500]; fibs[0] = "-1"; fibs[1] = "1"; fibs[2] = "2"; fibs[3] = "3"; fibs[4] = "5"; fibs[5] = "8"; fibs[6] = "13"; fibs[7] = "21"; fibs[8] = "34"; fibs[9] = "55"; fibs[10] = "89"; fibs[11] = "144"; fibs[12] = "233"; fibs[13] = "377"; fibs[14] = "610"; fibs[15] = "987"; fibs[16] = "1597"; fibs[17] = "2584"; fibs[18] = "4181"; fibs[19] = "6765"; fibs[20] = "10946"; fibs[21] = "17711"; fibs[22] = "28657"; fibs[23] = "46368"; fibs[24] = "75025"; fibs[25] = "121393"; fibs[26] = "196418"; fibs[27] = "317811"; fibs[28] = "514229"; fibs[29] = "832040"; fibs[30] = "1346269"; fibs[31] = "2178309"; fibs[32] = "3524578"; fibs[33] = "5702887"; fibs[34] = "9227465"; fibs[35] = "14930352"; fibs[36] = "24157817"; fibs[37] = "39088169"; fibs[38] = "63245986"; fibs[39] = "102334155"; fibs[40] = "165580141"; fibs[41] = "267914296"; fibs[42] = "433494437"; fibs[43] = "701408733"; fibs[44] = "1134903170"; fibs[45] = "1836311903"; fibs[46] = "2971215073"; fibs[47] = "4807526976"; fibs[48] = "7778742049"; fibs[49] = "12586269025"; fibs[50] = "20365011074"; fibs[51] = "32951280099"; fibs[52] = "53316291173"; fibs[53] = "86267571272"; fibs[54] = "139583862445"; fibs[55] = "225851433717"; fibs[56] = "365435296162"; fibs[57] = "591286729879"; fibs[58] = "956722026041"; fibs[59] = "1548008755920"; fibs[60] = "2504730781961"; fibs[61] = "4052739537881"; fibs[62] = "6557470319842"; fibs[63] = "10610209857723"; fibs[64] = "17167680177565"; fibs[65] = "27777890035288"; fibs[66] = "44945570212853"; fibs[67] = "72723460248141"; fibs[68] = "117669030460994"; fibs[69] = "190392490709135"; fibs[70] = "308061521170129"; fibs[71] = "498454011879264"; fibs[72] = "806515533049393"; fibs[73] = "1304969544928657"; fibs[74] = "2111485077978050"; fibs[75] = "3416454622906707"; fibs[76] = "5527939700884757"; fibs[77] = "8944394323791464"; fibs[78] = "14472334024676221"; fibs[79] = "23416728348467685"; fibs[80] = "37889062373143906"; fibs[81] = "61305790721611591"; fibs[82] = "99194853094755497"; fibs[83] = "160500643816367088"; fibs[84] = "259695496911122585"; fibs[85] = "420196140727489673"; fibs[86] = "679891637638612258"; fibs[87] = "1100087778366101931"; fibs[88] = "1779979416004714189"; fibs[89] = "2880067194370816120"; fibs[90] = "4660046610375530309"; fibs[91] = "7540113804746346429"; fibs[92] = "12200160415121876738"; fibs[93] = "19740274219868223167"; fibs[94] = "31940434634990099905"; fibs[95] = "51680708854858323072"; fibs[96] = "83621143489848422977"; fibs[97] = "135301852344706746049"; fibs[98] = "218922995834555169026"; fibs[99] = "354224848179261915075"; fibs[100] = "573147844013817084101"; fibs[101] = "927372692193078999176"; fibs[102] = "1500520536206896083277"; fibs[103] = "2427893228399975082453"; fibs[104] = "3928413764606871165730"; fibs[105] = "6356306993006846248183"; fibs[106] = "10284720757613717413913"; fibs[107] = "16641027750620563662096"; fibs[108] = "26925748508234281076009"; fibs[109] = "43566776258854844738105"; fibs[110] = "70492524767089125814114"; fibs[111] = "114059301025943970552219"; fibs[112] = "184551825793033096366333"; fibs[113] = "298611126818977066918552"; fibs[114] = "483162952612010163284885"; fibs[115] = "781774079430987230203437"; fibs[116] = "1264937032042997393488322"; fibs[117] = "2046711111473984623691759"; fibs[118] = "3311648143516982017180081"; fibs[119] = "5358359254990966640871840"; fibs[120] = "8670007398507948658051921"; fibs[121] = "14028366653498915298923761"; fibs[122] = "22698374052006863956975682"; fibs[123] = "36726740705505779255899443"; fibs[124] = "59425114757512643212875125"; fibs[125] = "96151855463018422468774568"; fibs[126] = "155576970220531065681649693"; fibs[127] = "251728825683549488150424261"; fibs[128] = "407305795904080553832073954"; fibs[129] = "659034621587630041982498215"; fibs[130] = "1066340417491710595814572169"; fibs[131] = "1725375039079340637797070384"; fibs[132] = "2791715456571051233611642553"; fibs[133] = "4517090495650391871408712937"; fibs[134] = "7308805952221443105020355490"; fibs[135] = "11825896447871834976429068427"; fibs[136] = "19134702400093278081449423917"; fibs[137] = "30960598847965113057878492344"; fibs[138] = "50095301248058391139327916261"; fibs[139] = "81055900096023504197206408605"; fibs[140] = "131151201344081895336534324866"; fibs[141] = "212207101440105399533740733471"; fibs[142] = "343358302784187294870275058337"; fibs[143] = "555565404224292694404015791808"; fibs[144] = "898923707008479989274290850145"; fibs[145] = "1454489111232772683678306641953"; fibs[146] = "2353412818241252672952597492098"; fibs[147] = "3807901929474025356630904134051"; fibs[148] = "6161314747715278029583501626149"; fibs[149] = "9969216677189303386214405760200"; fibs[150] = "16130531424904581415797907386349"; fibs[151] = "26099748102093884802012313146549"; fibs[152] = "42230279526998466217810220532898"; fibs[153] = "68330027629092351019822533679447"; fibs[154] = "110560307156090817237632754212345"; fibs[155] = "178890334785183168257455287891792"; fibs[156] = "289450641941273985495088042104137"; fibs[157] = "468340976726457153752543329995929"; fibs[158] = "757791618667731139247631372100066"; fibs[159] = "1226132595394188293000174702095995"; fibs[160] = "1983924214061919432247806074196061"; fibs[161] = "3210056809456107725247980776292056"; fibs[162] = "5193981023518027157495786850488117"; fibs[163] = "8404037832974134882743767626780173"; fibs[164] = "13598018856492162040239554477268290"; fibs[165] = "22002056689466296922983322104048463"; fibs[166] = "35600075545958458963222876581316753"; fibs[167] = "57602132235424755886206198685365216"; fibs[168] = "93202207781383214849429075266681969"; fibs[169] = "150804340016807970735635273952047185"; fibs[170] = "244006547798191185585064349218729154"; fibs[171] = "394810887814999156320699623170776339"; fibs[172] = "638817435613190341905763972389505493"; fibs[173] = "1033628323428189498226463595560281832"; fibs[174] = "1672445759041379840132227567949787325"; fibs[175] = "2706074082469569338358691163510069157"; fibs[176] = "4378519841510949178490918731459856482"; fibs[177] = "7084593923980518516849609894969925639"; fibs[178] = "11463113765491467695340528626429782121"; fibs[179] = "18547707689471986212190138521399707760"; fibs[180] = "30010821454963453907530667147829489881"; fibs[181] = "48558529144435440119720805669229197641"; fibs[182] = "78569350599398894027251472817058687522"; fibs[183] = "127127879743834334146972278486287885163"; fibs[184] = "205697230343233228174223751303346572685"; fibs[185] = "332825110087067562321196029789634457848"; fibs[186] = "538522340430300790495419781092981030533"; fibs[187] = "871347450517368352816615810882615488381"; fibs[188] = "1409869790947669143312035591975596518914"; fibs[189] = "2281217241465037496128651402858212007295"; fibs[190] = "3691087032412706639440686994833808526209"; fibs[191] = "5972304273877744135569338397692020533504"; fibs[192] = "9663391306290450775010025392525829059713"; fibs[193] = "15635695580168194910579363790217849593217"; fibs[194] = "25299086886458645685589389182743678652930"; fibs[195] = "40934782466626840596168752972961528246147"; fibs[196] = "66233869353085486281758142155705206899077"; fibs[197] = "107168651819712326877926895128666735145224"; fibs[198] = "173402521172797813159685037284371942044301"; fibs[199] = "280571172992510140037611932413038677189525"; fibs[200] = "453973694165307953197296969697410619233826"; fibs[201] = "734544867157818093234908902110449296423351"; fibs[202] = "1188518561323126046432205871807859915657177"; fibs[203] = "1923063428480944139667114773918309212080528"; fibs[204] = "3111581989804070186099320645726169127737705"; fibs[205] = "5034645418285014325766435419644478339818233"; fibs[206] = "8146227408089084511865756065370647467555938"; fibs[207] = "13180872826374098837632191485015125807374171"; fibs[208] = "21327100234463183349497947550385773274930109"; fibs[209] = "34507973060837282187130139035400899082304280"; fibs[210] = "55835073295300465536628086585786672357234389"; fibs[211] = "90343046356137747723758225621187571439538669"; fibs[212] = "146178119651438213260386312206974243796773058"; fibs[213] = "236521166007575960984144537828161815236311727"; fibs[214] = "382699285659014174244530850035136059033084785"; fibs[215] = "619220451666590135228675387863297874269396512"; fibs[216] = "1001919737325604309473206237898433933302481297"; fibs[217] = "1621140188992194444701881625761731807571877809"; fibs[218] = "2623059926317798754175087863660165740874359106"; fibs[219] = "4244200115309993198876969489421897548446236915"; fibs[220] = "6867260041627791953052057353082063289320596021"; fibs[221] = "11111460156937785151929026842503960837766832936"; fibs[222] = "17978720198565577104981084195586024127087428957"; fibs[223] = "29090180355503362256910111038089984964854261893"; fibs[224] = "47068900554068939361891195233676009091941690850"; fibs[225] = "76159080909572301618801306271765994056795952743"; fibs[226] = "123227981463641240980692501505442003148737643593"; fibs[227] = "199387062373213542599493807777207997205533596336"; fibs[228] = "322615043836854783580186309282650000354271239929"; fibs[229] = "522002106210068326179680117059857997559804836265"; fibs[230] = "844617150046923109759866426342507997914076076194"; fibs[231] = "1366619256256991435939546543402365995473880912459"; fibs[232] = "2211236406303914545699412969744873993387956988653"; fibs[233] = "3577855662560905981638959513147239988861837901112"; fibs[234] = "5789092068864820527338372482892113982249794889765"; fibs[235] = "9366947731425726508977331996039353971111632790877"; fibs[236] = "15156039800290547036315704478931467953361427680642"; fibs[237] = "24522987531716273545293036474970821924473060471519"; fibs[238] = "39679027332006820581608740953902289877834488152161"; fibs[239] = "64202014863723094126901777428873111802307548623680"; fibs[240] = "103881042195729914708510518382775401680142036775841"; fibs[241] = "168083057059453008835412295811648513482449585399521"; fibs[242] = "271964099255182923543922814194423915162591622175362"; fibs[243] = "440047156314635932379335110006072428645041207574883"; fibs[244] = "712011255569818855923257924200496343807632829750245"; fibs[245] = "1152058411884454788302593034206568772452674037325128"; fibs[246] = "1864069667454273644225850958407065116260306867075373"; fibs[247] = "3016128079338728432528443992613633888712980904400501"; fibs[248] = "4880197746793002076754294951020699004973287771475874"; fibs[249] = "7896325826131730509282738943634332893686268675876375"; fibs[250] = "12776523572924732586037033894655031898659556447352249"; fibs[251] = "20672849399056463095319772838289364792345825123228624"; fibs[252] = "33449372971981195681356806732944396691005381570580873"; fibs[253] = "54122222371037658776676579571233761483351206693809497"; fibs[254] = "87571595343018854458033386304178158174356588264390370"; fibs[255] = "141693817714056513234709965875411919657707794958199867"; fibs[256] = "229265413057075367692743352179590077832064383222590237"; fibs[257] = "370959230771131880927453318055001997489772178180790104"; fibs[258] = "600224643828207248620196670234592075321836561403380341"; fibs[259] = "971183874599339129547649988289594072811608739584170445"; fibs[260] = "1571408518427546378167846658524186148133445300987550786"; fibs[261] = "2542592393026885507715496646813780220945054040571721231"; fibs[262] = "4114000911454431885883343305337966369078499341559272017"; fibs[263] = "6656593304481317393598839952151746590023553382130993248"; fibs[264] = "10770594215935749279482183257489712959102052723690265265"; fibs[265] = "17427187520417066673081023209641459549125606105821258513"; fibs[266] = "28197781736352815952563206467131172508227658829511523778"; fibs[267] = "45624969256769882625644229676772632057353264935332782291"; fibs[268] = "73822750993122698578207436143903804565580923764844306069"; fibs[269] = "119447720249892581203851665820676436622934188700177088360"; fibs[270] = "193270471243015279782059101964580241188515112465021394429"; fibs[271] = "312718191492907860985910767785256677811449301165198482789"; fibs[272] = "505988662735923140767969869749836918999964413630219877218"; fibs[273] = "818706854228831001753880637535093596811413714795418360007"; fibs[274] = "1324695516964754142521850507284930515811378128425638237225"; fibs[275] = "2143402371193585144275731144820024112622791843221056597232"; fibs[276] = "3468097888158339286797581652104954628434169971646694834457"; fibs[277] = "5611500259351924431073312796924978741056961814867751431689"; fibs[278] = "9079598147510263717870894449029933369491131786514446266146"; fibs[279] = "14691098406862188148944207245954912110548093601382197697835"; fibs[280] = "23770696554372451866815101694984845480039225387896643963981"; fibs[281] = "38461794961234640015759308940939757590587318989278841661816"; fibs[282] = "62232491515607091882574410635924603070626544377175485625797"; fibs[283] = "100694286476841731898333719576864360661213863366454327287613"; fibs[284] = "162926777992448823780908130212788963731840407743629812913410"; fibs[285] = "263621064469290555679241849789653324393054271110084140201023"; fibs[286] = "426547842461739379460149980002442288124894678853713953114433"; fibs[287] = "690168906931029935139391829792095612517948949963798093315456"; fibs[288] = "1116716749392769314599541809794537900642843628817512046429889"; fibs[289] = "1806885656323799249738933639586633513160792578781310139745345"; fibs[290] = "2923602405716568564338475449381171413803636207598822186175234"; fibs[291] = "4730488062040367814077409088967804926964428786380132325920579"; fibs[292] = "7654090467756936378415884538348976340768064993978954512095813"; fibs[293] = "12384578529797304192493293627316781267732493780359086838016392"; fibs[294] = "20038668997554240570909178165665757608500558774338041350112205"; fibs[295] = "32423247527351544763402471792982538876233052554697128188128597"; fibs[296] = "52461916524905785334311649958648296484733611329035169538240802"; fibs[297] = "84885164052257330097714121751630835360966663883732297726369399"; fibs[298] = "137347080577163115432025771710279131845700275212767467264610201"; fibs[299] = "222232244629420445529739893461909967206666939096499764990979600"; fibs[300] = "359579325206583560961765665172189099052367214309267232255589801"; fibs[301] = "581811569836004006491505558634099066259034153405766997246569401"; fibs[302] = "941390895042587567453271223806288165311401367715034229502159202"; fibs[303] = "1523202464878591573944776782440387231570435521120801226748728603"; fibs[304] = "2464593359921179141398048006246675396881836888835835456250887805"; fibs[305] = "3987795824799770715342824788687062628452272409956636682999616408"; fibs[306] = "6452389184720949856740872794933738025334109298792472139250504213"; fibs[307] = "10440185009520720572083697583620800653786381708749108822250120621"; fibs[308] = "16892574194241670428824570378554538679120491007541580961500624834"; fibs[309] = "27332759203762391000908267962175339332906872716290689783750745455"; fibs[310] = "44225333398004061429732838340729878012027363723832270745251370289"; fibs[311] = "71558092601766452430641106302905217344934236440122960529002115744"; fibs[312] = "115783425999770513860373944643635095356961600163955231274253486033"; fibs[313] = "187341518601536966291015050946540312701895836604078191803255601777"; fibs[314] = "303124944601307480151388995590175408058857436768033423077509087810"; fibs[315] = "490466463202844446442404046536715720760753273372111614880764689587"; fibs[316] = "793591407804151926593793042126891128819610710140145037958273777397"; fibs[317] = "1284057871006996373036197088663606849580363983512256652839038466984"; fibs[318] = "2077649278811148299629990130790497978399974693652401690797312244381"; fibs[319] = "3361707149818144672666187219454104827980338677164658343636350711365"; fibs[320] = "5439356428629292972296177350244602806380313370817060034433662955746"; fibs[321] = "8801063578447437644962364569698707634360652047981718378070013667111"; fibs[322] = "14240420007076730617258541919943310440740965418798778412503676622857"; fibs[323] = "23041483585524168262220906489642018075101617466780496790573690289968"; fibs[324] = "37281903592600898879479448409585328515842582885579275203077366912825"; fibs[325] = "60323387178125067141700354899227346590944200352359771993651057202793"; fibs[326] = "97605290770725966021179803308812675106786783237939047196728424115618"; fibs[327] = "157928677948851033162880158208040021697730983590298819190379481318411"; fibs[328] = "255533968719576999184059961516852696804517766828237866387107905434029"; fibs[329] = "413462646668428032346940119724892718502248750418536685577487386752440"; fibs[330] = "668996615388005031531000081241745415306766517246774551964595292186469"; fibs[331] = "1082459262056433063877940200966638133809015267665311237542082678938909"; fibs[332] = "1751455877444438095408940282208383549115781784912085789506677971125378"; fibs[333] = "2833915139500871159286880483175021682924797052577397027048760650064287"; fibs[334] = "4585371016945309254695820765383405232040578837489482816555438621189665"; fibs[335] = "7419286156446180413982701248558426914965375890066879843604199271253952"; fibs[336] = "12004657173391489668678522013941832147005954727556362660159637892443617"; fibs[337] = "19423943329837670082661223262500259061971330617623242503763837163697569"; fibs[338] = "31428600503229159751339745276442091208977285345179605163923475056141186"; fibs[339] = "50852543833066829834000968538942350270948615962802847667687312219838755"; fibs[340] = "82281144336295989585340713815384441479925901307982452831610787275979941"; fibs[341] = "133133688169362819419341682354326791750874517270785300499298099495818696"; fibs[342] = "215414832505658809004682396169711233230800418578767753330908886771798637"; fibs[343] = "348548520675021628424024078524038024981674935849553053830206986267617333"; fibs[344] = "563963353180680437428706474693749258212475354428320807161115873039415970"; fibs[345] = "912511873855702065852730553217787283194150290277873860991322859307033303"; fibs[346] = "1476475227036382503281437027911536541406625644706194668152438732346449273"; fibs[347] = "2388987100892084569134167581129323824600775934984068529143761591653482576"; fibs[348] = "3865462327928467072415604609040860366007401579690263197296200323999931849"; fibs[349] = "6254449428820551641549772190170184190608177514674331726439961915653414425"; fibs[350] = "10119911756749018713965376799211044556615579094364594923736162239653346274"; fibs[351] = "16374361185569570355515148989381228747223756609038926650176124155306760699"; fibs[352] = "26494272942318589069480525788592273303839335703403521573912286394960106973"; fibs[353] = "42868634127888159424995674777973502051063092312442448224088410550266867672"; fibs[354] = "69362907070206748494476200566565775354902428015845969798000696945226974645"; fibs[355] = "112231541198094907919471875344539277405965520328288418022089107495493842317"; fibs[356] = "181594448268301656413948075911105052760867948344134387820089804440720816962"; fibs[357] = "293825989466396564333419951255644330166833468672422805842178911936214659279"; fibs[358] = "475420437734698220747368027166749382927701417016557193662268716376935476241"; fibs[359] = "769246427201094785080787978422393713094534885688979999504447628313150135520"; fibs[360] = "1244666864935793005828156005589143096022236302705537193166716344690085611761"; fibs[361] = "2013913292136887790908943984011536809116771188394517192671163973003235747281"; fibs[362] = "3258580157072680796737099989600679905139007491100054385837880317693321359042"; fibs[363] = "5272493449209568587646043973612216714255778679494571578509044290696557106323"; fibs[364] = "8531073606282249384383143963212896619394786170594625964346924608389878465365"; fibs[365] = "13803567055491817972029187936825113333650564850089197542855968899086435571688"; fibs[366] = "22334640661774067356412331900038009953045351020683823507202893507476314037053"; fibs[367] = "36138207717265885328441519836863123286695915870773021050058862406562749608741"; fibs[368] = "58472848379039952684853851736901133239741266891456844557261755914039063645794"; fibs[369] = "94611056096305838013295371573764256526437182762229865607320618320601813254535"; fibs[370] = "153083904475345790698149223310665389766178449653686710164582374234640876900329"; fibs[371] = "247694960571651628711444594884429646292615632415916575771902992555242690154864"; fibs[372] = "400778865046997419409593818195095036058794082069603285936485366789883567055193"; fibs[373] = "648473825618649048121038413079524682351409714485519861708388359345126257210057"; fibs[374] = "1049252690665646467530632231274619718410203796555123147644873726135009824265250"; fibs[375] = "1697726516284295515651670644354144400761613511040643009353262085480136081475307"; fibs[376] = "2746979206949941983182302875628764119171817307595766156998135811615145905740557"; fibs[377] = "4444705723234237498833973519982908519933430818636409166351397897095281987215864"; fibs[378] = "7191684930184179482016276395611672639105248126232175323349533708710427892956421"; fibs[379] = "11636390653418416980850249915594581159038678944868584489700931605805709880172285"; fibs[380] = "18828075583602596462866526311206253798143927071100759813050465314516137773128706"; fibs[381] = "30464466237021013443716776226800834957182606015969344302751396920321847653300991"; fibs[382] = "49292541820623609906583302538007088755326533087070104115801862234837985426429697"; fibs[383] = "79757008057644623350300078764807923712509139103039448418553259155159833079730688"; fibs[384] = "129049549878268233256883381302815012467835672190109552534355121389997818506160385"; fibs[385] = "208806557935912856607183460067622936180344811293149000952908380545157651585891073"; fibs[386] = "337856107814181089864066841370437948648180483483258553487263501935155470092051458"; fibs[387] = "546662665750093946471250301438060884828525294776407554440171882480313121677942531"; fibs[388] = "884518773564275036335317142808498833476705778259666107927435384415468591769993989"; fibs[389] = "1431181439314368982806567444246559718305231073036073662367607266895781713447936520"; fibs[390] = "2315700212878644019141884587055058551781936851295739770295042651311250305217930509"; fibs[391] = "3746881652193013001948452031301618270087167924331813432662649918207032018665867029"; fibs[392] = "6062581865071657021090336618356676821869104775627553202957692569518282323883797538"; fibs[393] = "9809463517264670023038788649658295091956272699959366635620342487725314342549664567"; fibs[394] = "15872045382336327044129125268014971913825377475586919838578035057243596666433462105"; fibs[395] = "25681508899600997067167913917673267005781650175546286474198377544968911008983126672"; fibs[396] = "41553554281937324111297039185688238919607027651133206312776412602212507675416588777"; fibs[397] = "67235063181538321178464953103361505925388677826679492786974790147181418684399715449"; fibs[398] = "108788617463475645289761992289049744844995705477812699099751202749393926359816304226"; fibs[399] = "176023680645013966468226945392411250770384383304492191886725992896575345044216019675"; fibs[400] = "284812298108489611757988937681460995615380088782304890986477195645969271404032323901"; fibs[401] = "460835978753503578226215883073872246385764472086797082873203188542544616448248343576"; fibs[402] = "745648276861993189984204820755333242001144560869101973859680384188513887852280667477"; fibs[403] = "1206484255615496768210420703829205488386909032955899056732883572731058504300529011053"; fibs[404] = "1952132532477489958194625524584538730388053593825001030592563956919572392152809678530"; fibs[405] = "3158616788092986726405046228413744218774962626780900087325447529650630896453338689583"; fibs[406] = "5110749320570476684599671752998282949163016220605901117918011486570203288606148368113"; fibs[407] = "8269366108663463411004717981412027167937978847386801205243459016220834185059487057696"; fibs[408] = "13380115429233940095604389734410310117100995067992702323161470502791037473665635425809"; fibs[409] = "21649481537897403506609107715822337285038973915379503528404929519011871658725122483505"; fibs[410] = "35029596967131343602213497450232647402139968983372205851566400021802909132390757909314"; fibs[411] = "56679078505028747108822605166054984687178942898751709379971329540814780791115880392819"; fibs[412] = "91708675472160090711036102616287632089318911882123915231537729562617689923506638302133"; fibs[413] = "148387753977188837819858707782342616776497854780875624611509059103432470714622518694952"; fibs[414] = "240096429449348928530894810398630248865816766662999539843046788666050160638129156997085"; fibs[415] = "388484183426537766350753518180972865642314621443875164454555847769482631352751675692037"; fibs[416] = "628580612875886694881648328579603114508131388106874704297602636435532791990880832689122"; fibs[417] = "1017064796302424461232401846760575980150446009550749868752158484205015423343632508381159"; fibs[418] = "1645645409178311156114050175340179094658577397657624573049761120640548215334513341070281"; fibs[419] = "2662710205480735617346452022100755074809023407208374441801919604845563638678145849451440"; fibs[420] = "4308355614659046773460502197440934169467600804865999014851680725486111854012659190521721"; fibs[421] = "6971065820139782390806954219541689244276624212074373456653600330331675492690805039973161"; fibs[422] = "11279421434798829164267456416982623413744225016940372471505281055817787346703464230494882"; fibs[423] = "18250487254938611555074410636524312658020849229014745928158881386149462839394269270468043"; fibs[424] = "29529908689737440719341867053506936071765074245955118399664162441967250186097733500962925"; fibs[425] = "47780395944676052274416277690031248729785923474969864327823043828116713025492002771430968"; fibs[426] = "77310304634413492993758144743538184801550997720924982727487206270083963211589736272393893"; fibs[427] = "125090700579089545268174422433569433531336921195894847055310250098200676237081739043824861"; fibs[428] = "202401005213503038261932567177107618332887918916819829782797456368284639448671475316218754"; fibs[429] = "327491705792592583530106989610677051864224840112714676838107706466485315685753214360043615"; fibs[430] = "529892711006095621792039556787784670197112759029534506620905162834769955134424689676262369"; fibs[431] = "857384416798688205322146546398461722061337599142249183459012869301255270820177904036305984"; fibs[432] = "1387277127804783827114186103186246392258450358171783690079918032136025225954602593712568353"; fibs[433] = "2244661544603472032436332649584708114319787957314032873538930901437280496774780497748874337"; fibs[434] = "3631938672408255859550518752770954506578238315485816563618848933573305722729383091461442690"; fibs[435] = "5876600217011727891986851402355662620898026272799849437157779835010586219504163589210317027"; fibs[436] = "9508538889419983751537370155126617127476264588285666000776628768583891942233546680671759717"; fibs[437] = "15385139106431711643524221557482279748374290861085515437934408603594478161737710269882076744"; fibs[438] = "24893677995851695395061591712608896875850555449371181438711037372178370103971256950553836461"; fibs[439] = "40278817102283407038585813270091176624224846310456696876645445975772848265708967220435913205"; fibs[440] = "65172495098135102433647404982700073500075401759827878315356483347951218369680224170989749666"; fibs[441] = "105451312200418509472233218252791250124300248070284575192001929323724066635389191391425662871"; fibs[442] = "170623807298553611905880623235491323624375649830112453507358412671675285005069415562415412537"; fibs[443] = "276075119498972121378113841488282573748675897900397028699360341995399351640458606953841075408"; fibs[444] = "446698926797525733283994464723773897373051547730509482206718754667074636645528022516256487945"; fibs[445] = "722774046296497854662108306212056471121727445630906510906079096662473988285986629470097563353"; fibs[446] = "1169472973094023587946102770935830368494778993361415993112797851329548624931514651986354051298"; fibs[447] = "1892247019390521442608211077147886839616506438992322504018876947992022613217501281456451614651"; fibs[448] = "3061719992484545030554313848083717208111285432353738497131674799321571238149015933442805665949"; fibs[449] = "4953967011875066473162524925231604047727791871346061001150551747313593851366517214899257280600"; fibs[450] = "8015687004359611503716838773315321255839077303699799498282226546635165089515533148342062946549"; fibs[451] = "12969654016234677976879363698546925303566869175045860499432778293948758940882050363241320227149"; fibs[452] = "20985341020594289480596202471862246559405946478745659997715004840583924030397583511583383173698"; fibs[453] = "33954995036828967457475566170409171862972815653791520497147783134532682971279633874824703400847"; fibs[454] = "54940336057423256938071768642271418422378762132537180494862787975116607001677217386408086574545"; fibs[455] = "88895331094252224395547334812680590285351577786328700992010571109649289972956851261232789975392"; fibs[456] = "143835667151675481333619103454952008707730339918865881486873359084765896974634068647640876549937"; fibs[457] = "232730998245927705729166438267632598993081917705194582478883930194415186947590919908873666525329"; fibs[458] = "376566665397603187062785541722584607700812257624060463965757289279181083922224988556514543075266"; fibs[459] = "609297663643530892791951979990217206693894175329255046444641219473596270869815908465388209600595"; fibs[460] = "985864329041134079854737521712801814394706432953315510410398508752777354792040897021902752675861"; fibs[461] = "1595161992684664972646689501703019021088600608282570556855039728226373625661856805487290962276456"; fibs[462] = "2581026321725799052501427023415820835483307041235886067265438236979150980453897702509193714952317"; fibs[463] = "4176188314410464025148116525118839856571907649518456624120477965205524606115754507996484677228773"; fibs[464] = "6757214636136263077649543548534660692055214690754342691385916202184675586569652210505678392181090"; fibs[465] = "10933402950546727102797660073653500548627122340272799315506394167390200192685406718502163069409863"; fibs[466] = "17690617586682990180447203622188161240682337031027142006892310369574875779255058929007841461590953"; fibs[467] = "28624020537229717283244863695841661789309459371299941322398704536965075971940465647510004531000816"; fibs[468] = "46314638123912707463692067318029823029991796402327083329291014906539951751195524576517845992591769"; fibs[469] = "74938658661142424746936931013871484819301255773627024651689719443505027723135990224027850523592585"; fibs[470] = "121253296785055132210628998331901307849293052175954107980980734350044979474331514800545696516184354"; fibs[471] = "196191955446197556957565929345772792668594307949581132632670453793550007197467505024573547039776939"; fibs[472] = "317445252231252689168194927677674100517887360125535240613651188143594986671799019825119243555961293"; fibs[473] = "513637207677450246125760857023446893186481668075116373246321641937144993869266524849692790595738232"; fibs[474] = "831082459908702935293955784701120993704369028200651613859972830080739980541065544674812034151699525"; fibs[475] = "1344719667586153181419716641724567886890850696275767987106294472017884974410332069524504824747437757"; fibs[476] = "2175802127494856116713672426425688880595219724476419600966267302098624954951397614199316858899137282"; fibs[477] = "3520521795081009298133389068150256767486070420752187588072561774116509929361729683723821683646575039"; fibs[478] = "5696323922575865414847061494575945648081290145228607189038829076215134884313127297923138542545712321"; fibs[479] = "9216845717656874712980450562726202415567360565980794777111390850331644813674856981646960226192287360"; fibs[480] = "14913169640232740127827512057302148063648650711209401966150219926546779697987984279570098768737999681"; fibs[481] = "24130015357889614840807962620028350479216011277190196743261610776878424511662841261217058994930287041"; fibs[482] = "39043184998122354968635474677330498542864661988399598709411830703425204209650825540787157763668286722"; fibs[483] = "63173200356011969809443437297358849022080673265589795452673441480303628721313666802004216758598573763"; fibs[484] = "102216385354134324778078911974689347564945335253989394162085272183728832930964492342791374522266860485"; fibs[485] = "165389585710146294587522349272048196587026008519579189614758713664032461652278159144795591280865434248"; fibs[486] = "267605971064280619365601261246737544151971343773568583776843985847761294583242651487586965803132294733"; fibs[487] = "432995556774426913953123610518785740738997352293147773391602699511793756235520810632382557083997728981"; fibs[488] = "700601527838707533318724871765523284890968696066716357168446685359555050818763462119969522887130023714"; fibs[489] = "1133597084613134447271848482284309025629966048359864130560049384871348807054284272752352079971127752695"; fibs[490] = "1834198612451841980590573354049832310520934744426580487728496070230903857873047734872321602858257776409"; fibs[491] = "2967795697064976427862421836334141336150900792786444618288545455102252664927332007624673682829385529104"; fibs[492] = "4801994309516818408452995190383973646671835537213025106017041525333156522800379742496995285687643305513"; fibs[493] = "7769790006581794836315417026718114982822736329999469724305586980435409187727711750121668968517028834617"; fibs[494] = "12571784316098613244768412217102088629494571867212494830322628505768565710528091492618664254204672140130"; fibs[495] = "20341574322680408081083829243820203612317308197211964554628215486203974898255803242740333222721700974747"; fibs[496] = "32913358638779021325852241460922292241811880064424459384950843991972540608783894735358997476926373114877"; fibs[497] = "53254932961459429406936070704742495854129188261636423939579059478176515507039697978099330699648074089624"; fibs[498] = "86168291600238450732788312165664788095941068326060883324529903470149056115823592713458328176574447204501"; fibs[499] = "139423224561697880139724382870407283950070256587697307264108962948325571622863290691557658876222521294125"; // fibs }}} string a, b; while (cin >> a >> b, "0" != b || "0" != a) { switch(compare(a, b)) { case 0: cout << ((isfib(fibs, a)) ? 1 : 0) << endl; break; case 1: cout << "0" << endl; break; default: case -1: size_t index_a(index(fibs, a)), index_b(index(fibs, b)); size_t count(index_b - index_a); count += isfib(fibs, a) ? 1 : 0; cout << count << endl; break; } } return 0; }