1 /* Test exact conversion to binary floating-point types of
2 floating-point contents expressed in decimal. PR 21718. */
4 /* { dg-options "-w" } */
5 /* { dg-add-options ieee } */
7 /* For float (if IEEE binary32), double (if IEEE binary64) and long
8 double (if IEEE binary64, x86 extended or IEEE binary128) we test
9 half-way values and numbers close to those half-way values. */
13 #if FLT_EVAL_METHOD == 0 \
14 && FLT_MANT_DIG == 24 \
15 && FLT_MIN_EXP == -125 \
19 static const float f1ae
= 0, f1be
= 0, f1ce
= 0x1p
-149f
;
20 static const float f1a
=
21 7.0064923216240853546186479164495806564013097093825788587853\
22 4141944895541342930300743319094181060791015624999e-46f
;
23 static const float f1b
=
24 7.0064923216240853546186479164495806564013097093825788587853\
25 4141944895541342930300743319094181060791015625e-46f
;
26 static const float f1c
=
27 7.0064923216240853546186479164495806564013097093825788587853\
28 4141944895541342930300743319094181060791015625001e-46f
;
30 static const float f2ae
= 0x1p
-149f
, f2be
= 0x2p
-149f
, f2ce
= 0x2p
-149f
;
31 static const float f2a
=
32 2.1019476964872256063855943749348741969203929128147736576356\
33 02425834686624028790902229957282543182373046874999e-45f
;
34 static const float f2b
=
35 2.1019476964872256063855943749348741969203929128147736576356\
36 02425834686624028790902229957282543182373046875e-45f
;
37 static const float f2c
=
38 2.1019476964872256063855943749348741969203929128147736576356\
39 02425834686624028790902229957282543182373046875001e-45f
;
41 static const float f3ae
= 0x1p
127f
, f3be
= 0x1p
127f
, f3ce
= 0x1.000002p127f
;
42 static const float f3a
=
43 1.70141193601674033557522515689509748735999e+38f
;
44 static const float f3b
=
45 1.70141193601674033557522515689509748736e+38f
;
46 static const float f3c
=
47 1.70141193601674033557522515689509748736001e+38f
;
50 #if (FLT_EVAL_METHOD == 0 || FLT_EVAL_METHOD == 1) \
51 && DBL_MANT_DIG == 53 \
52 && DBL_MIN_EXP == -1021 \
53 && DBL_MAX_EXP == 1024
56 static const double d1ae
= 0, d1be
= 0, d1ce
= 0x1p
-1074;
57 static const double d1a
=
58 2.4703282292062327208828439643411068618252990130716238221279\
59 284125033775363510437593264991818081799618989828234772285886\
60 546332835517796989819938739800539093906315035659515570226392\
61 290858392449105184435931802849936536152500319370457678249219\
62 365623669863658480757001585769269903706311928279558551332927\
63 834338409351978015531246597263579574622766465272827220056374\
64 006485499977096599470454020828166226237857393450736339007967\
65 761930577506740176324673600968951340535537458516661134223766\
66 678604162159680461914467291840300530057530849048765391711386\
67 591646239524912623653881879636239373280423891018672348497668\
68 235089863388587925628302755995657524455507255189313690836254\
69 779186948667994968324049705821028513185451396213837722826145\
70 437693412532098591327667236328124999e-324;
71 static const double d1b
=
72 2.4703282292062327208828439643411068618252990130716238221279\
73 284125033775363510437593264991818081799618989828234772285886\
74 546332835517796989819938739800539093906315035659515570226392\
75 290858392449105184435931802849936536152500319370457678249219\
76 365623669863658480757001585769269903706311928279558551332927\
77 834338409351978015531246597263579574622766465272827220056374\
78 006485499977096599470454020828166226237857393450736339007967\
79 761930577506740176324673600968951340535537458516661134223766\
80 678604162159680461914467291840300530057530849048765391711386\
81 591646239524912623653881879636239373280423891018672348497668\
82 235089863388587925628302755995657524455507255189313690836254\
83 779186948667994968324049705821028513185451396213837722826145\
84 437693412532098591327667236328125e-324;
85 static const double d1c
=
86 2.4703282292062327208828439643411068618252990130716238221279\
87 284125033775363510437593264991818081799618989828234772285886\
88 546332835517796989819938739800539093906315035659515570226392\
89 290858392449105184435931802849936536152500319370457678249219\
90 365623669863658480757001585769269903706311928279558551332927\
91 834338409351978015531246597263579574622766465272827220056374\
92 006485499977096599470454020828166226237857393450736339007967\
93 761930577506740176324673600968951340535537458516661134223766\
94 678604162159680461914467291840300530057530849048765391711386\
95 591646239524912623653881879636239373280423891018672348497668\
96 235089863388587925628302755995657524455507255189313690836254\
97 779186948667994968324049705821028513185451396213837722826145\
98 437693412532098591327667236328125001e-324;
100 static const double d2ae
= 0x1p
-1074, d2be
= 0x2p
-1074, d2ce
= 0x2p
-1074;
101 static const double d2a
=
102 7.4109846876186981626485318930233205854758970392148714663837\
103 852375101326090531312779794975454245398856969484704316857659\
104 638998506553390969459816219401617281718945106978546710679176\
105 872575177347315553307795408549809608457500958111373034747658\
106 096871009590975442271004757307809711118935784838675653998783\
107 503015228055934046593739791790738723868299395818481660169122\
108 019456499931289798411362062484498678713572180352209017023903\
109 285791732520220528974020802906854021606612375549983402671300\
110 035812486479041385743401875520901590172592547146296175134159\
111 774938718574737870961645638908718119841271673056017045493004\
112 705269590165763776884908267986972573366521765567941072508764\
113 337560846003984904972149117463085539556354188641513168478436\
114 313080237596295773983001708984374999e-324;
115 static const double d2b
=
116 7.4109846876186981626485318930233205854758970392148714663837\
117 852375101326090531312779794975454245398856969484704316857659\
118 638998506553390969459816219401617281718945106978546710679176\
119 872575177347315553307795408549809608457500958111373034747658\
120 096871009590975442271004757307809711118935784838675653998783\
121 503015228055934046593739791790738723868299395818481660169122\
122 019456499931289798411362062484498678713572180352209017023903\
123 285791732520220528974020802906854021606612375549983402671300\
124 035812486479041385743401875520901590172592547146296175134159\
125 774938718574737870961645638908718119841271673056017045493004\
126 705269590165763776884908267986972573366521765567941072508764\
127 337560846003984904972149117463085539556354188641513168478436\
128 313080237596295773983001708984375e-324;
129 static const double d2c
=
130 7.4109846876186981626485318930233205854758970392148714663837\
131 852375101326090531312779794975454245398856969484704316857659\
132 638998506553390969459816219401617281718945106978546710679176\
133 872575177347315553307795408549809608457500958111373034747658\
134 096871009590975442271004757307809711118935784838675653998783\
135 503015228055934046593739791790738723868299395818481660169122\
136 019456499931289798411362062484498678713572180352209017023903\
137 285791732520220528974020802906854021606612375549983402671300\
138 035812486479041385743401875520901590172592547146296175134159\
139 774938718574737870961645638908718119841271673056017045493004\
140 705269590165763776884908267986972573366521765567941072508764\
141 337560846003984904972149117463085539556354188641513168478436\
142 313080237596295773983001708984375001e-324;
143 /* 0x1.00000000000008p1023 */
144 static const double d3ae
= 0x1p
1023, d3be
= 0x1p
1023, d3ce
= 0x1.0000000000001p1023
;
145 static const double d3a
=
146 8.9884656743115805365666807213050294962762414131308158973971\
147 342756154045415486693752413698006024096935349884403114202125\
148 541629105369684531108613657287705365884742938136589844238179\
149 474556051429647415148697857438797685859063890851407391008830\
150 874765563025951597582513936655578157348020066364210154316532\
152 static const double d3b
=
153 8.9884656743115805365666807213050294962762414131308158973971\
154 342756154045415486693752413698006024096935349884403114202125\
155 541629105369684531108613657287705365884742938136589844238179\
156 474556051429647415148697857438797685859063890851407391008830\
157 874765563025951597582513936655578157348020066364210154316532\
159 static const double d3c
=
160 8.9884656743115805365666807213050294962762414131308158973971\
161 342756154045415486693752413698006024096935349884403114202125\
162 541629105369684531108613657287705365884742938136589844238179\
163 474556051429647415148697857438797685859063890851407391008830\
164 874765563025951597582513936655578157348020066364210154316532\
168 #if LDBL_MANT_DIG == 53 \
169 && LDBL_MIN_EXP == -1021 \
170 && LDBL_MAX_EXP == 1024
173 static const long double ld1ae
= 0, ld1be
= 0, ld1ce
= 0x1p
-1074L;
174 static const long double ld1a
=
175 2.4703282292062327208828439643411068618252990130716238221279\
176 284125033775363510437593264991818081799618989828234772285886\
177 546332835517796989819938739800539093906315035659515570226392\
178 290858392449105184435931802849936536152500319370457678249219\
179 365623669863658480757001585769269903706311928279558551332927\
180 834338409351978015531246597263579574622766465272827220056374\
181 006485499977096599470454020828166226237857393450736339007967\
182 761930577506740176324673600968951340535537458516661134223766\
183 678604162159680461914467291840300530057530849048765391711386\
184 591646239524912623653881879636239373280423891018672348497668\
185 235089863388587925628302755995657524455507255189313690836254\
186 779186948667994968324049705821028513185451396213837722826145\
187 437693412532098591327667236328124999e-324L;
188 static const long double ld1b
=
189 2.4703282292062327208828439643411068618252990130716238221279\
190 284125033775363510437593264991818081799618989828234772285886\
191 546332835517796989819938739800539093906315035659515570226392\
192 290858392449105184435931802849936536152500319370457678249219\
193 365623669863658480757001585769269903706311928279558551332927\
194 834338409351978015531246597263579574622766465272827220056374\
195 006485499977096599470454020828166226237857393450736339007967\
196 761930577506740176324673600968951340535537458516661134223766\
197 678604162159680461914467291840300530057530849048765391711386\
198 591646239524912623653881879636239373280423891018672348497668\
199 235089863388587925628302755995657524455507255189313690836254\
200 779186948667994968324049705821028513185451396213837722826145\
201 437693412532098591327667236328125e-324L;
202 static const long double ld1c
=
203 2.4703282292062327208828439643411068618252990130716238221279\
204 284125033775363510437593264991818081799618989828234772285886\
205 546332835517796989819938739800539093906315035659515570226392\
206 290858392449105184435931802849936536152500319370457678249219\
207 365623669863658480757001585769269903706311928279558551332927\
208 834338409351978015531246597263579574622766465272827220056374\
209 006485499977096599470454020828166226237857393450736339007967\
210 761930577506740176324673600968951340535537458516661134223766\
211 678604162159680461914467291840300530057530849048765391711386\
212 591646239524912623653881879636239373280423891018672348497668\
213 235089863388587925628302755995657524455507255189313690836254\
214 779186948667994968324049705821028513185451396213837722826145\
215 437693412532098591327667236328125001e-324L;
217 static const long double ld2ae
= 0x1p
-1074L, ld2be
= 0x2p
-1074L, ld2ce
= 0x2p
-1074L;
218 static const long double ld2a
=
219 7.4109846876186981626485318930233205854758970392148714663837\
220 852375101326090531312779794975454245398856969484704316857659\
221 638998506553390969459816219401617281718945106978546710679176\
222 872575177347315553307795408549809608457500958111373034747658\
223 096871009590975442271004757307809711118935784838675653998783\
224 503015228055934046593739791790738723868299395818481660169122\
225 019456499931289798411362062484498678713572180352209017023903\
226 285791732520220528974020802906854021606612375549983402671300\
227 035812486479041385743401875520901590172592547146296175134159\
228 774938718574737870961645638908718119841271673056017045493004\
229 705269590165763776884908267986972573366521765567941072508764\
230 337560846003984904972149117463085539556354188641513168478436\
231 313080237596295773983001708984374999e-324L;
232 static const long double ld2b
=
233 7.4109846876186981626485318930233205854758970392148714663837\
234 852375101326090531312779794975454245398856969484704316857659\
235 638998506553390969459816219401617281718945106978546710679176\
236 872575177347315553307795408549809608457500958111373034747658\
237 096871009590975442271004757307809711118935784838675653998783\
238 503015228055934046593739791790738723868299395818481660169122\
239 019456499931289798411362062484498678713572180352209017023903\
240 285791732520220528974020802906854021606612375549983402671300\
241 035812486479041385743401875520901590172592547146296175134159\
242 774938718574737870961645638908718119841271673056017045493004\
243 705269590165763776884908267986972573366521765567941072508764\
244 337560846003984904972149117463085539556354188641513168478436\
245 313080237596295773983001708984375e-324L;
246 static const long double ld2c
=
247 7.4109846876186981626485318930233205854758970392148714663837\
248 852375101326090531312779794975454245398856969484704316857659\
249 638998506553390969459816219401617281718945106978546710679176\
250 872575177347315553307795408549809608457500958111373034747658\
251 096871009590975442271004757307809711118935784838675653998783\
252 503015228055934046593739791790738723868299395818481660169122\
253 019456499931289798411362062484498678713572180352209017023903\
254 285791732520220528974020802906854021606612375549983402671300\
255 035812486479041385743401875520901590172592547146296175134159\
256 774938718574737870961645638908718119841271673056017045493004\
257 705269590165763776884908267986972573366521765567941072508764\
258 337560846003984904972149117463085539556354188641513168478436\
259 313080237596295773983001708984375001e-324L;
260 /* 0x1.00000000000008p1023 */
261 static const long double ld3ae
= 0x1p
1023L, ld3be
= 0x1p
1023L, ld3ce
= 0x1.0000000000001p1023L
;
262 static const long double ld3a
=
263 8.9884656743115805365666807213050294962762414131308158973971\
264 342756154045415486693752413698006024096935349884403114202125\
265 541629105369684531108613657287705365884742938136589844238179\
266 474556051429647415148697857438797685859063890851407391008830\
267 874765563025951597582513936655578157348020066364210154316532\
269 static const long double ld3b
=
270 8.9884656743115805365666807213050294962762414131308158973971\
271 342756154045415486693752413698006024096935349884403114202125\
272 541629105369684531108613657287705365884742938136589844238179\
273 474556051429647415148697857438797685859063890851407391008830\
274 874765563025951597582513936655578157348020066364210154316532\
276 static const long double ld3c
=
277 8.9884656743115805365666807213050294962762414131308158973971\
278 342756154045415486693752413698006024096935349884403114202125\
279 541629105369684531108613657287705365884742938136589844238179\
280 474556051429647415148697857438797685859063890851407391008830\
281 874765563025951597582513936655578157348020066364210154316532\
285 #if LDBL_MANT_DIG == 64 \
286 && LDBL_MIN_EXP == -16381 \
287 && LDBL_MAX_EXP == 16384
290 static const long double ld1ae
= 0, ld1be
= 0, ld1ce
= 0x1p
-16445L;
291 static const long double ld1a
=
292 1.8225997659412373012642029668097099081995254078467816718604\
293 902435141858443166988684047803543129136025986236736736017655\
294 509834928163110160849867540377949045027419112905889658392846\
295 126319028167798783107812829917053644701598967767636342956203\
296 999770864055077592691915230273843577112246476529298591341071\
297 313110337661777304220340396298768698441131694859514066773321\
298 059786469060001083813361460161387168195154228027648977594276\
299 496061276605855817438145692314650177569263750801566422892936\
300 732834290416745265618525969943519916542939199731612507343012\
301 297331882934352282118173551211985973294301787840335672389913\
302 821098681464088756477802684228806339233239542587316254618680\
303 197563613907079766830481997222017010585267442240109888818022\
304 189543438116245170584546472752661417773021275082355242554950\
305 776248474101880875363872607989624146320823364146896124171892\
306 610744237622308266702265704492674694505399997330424978964704\
307 335411125839490463131661420668167686151828553033363555080508\
308 484934542727634080467233927879117726432283352324546435315312\
309 937809651095964197873430398662003709663353962932921239516263\
310 008572512558260093668527782388349282015308359304941505110445\
311 043762021191469060607078792635897736408141163554429972292873\
312 575169264387977130124003958599909776720759582995017519144111\
313 001778329839793855454688442046155253818724410472281602421363\
314 580613990749181808302947976045417884436271162664776148749463\
315 202753814797191206392480969096910387729527305862739806702349\
316 088455828380471306603628636563037414688265702108098430515297\
317 645997107159687247830496686980315376091511219227376708389862\
318 310190633134517040835432587726931910775044780329777051964574\
319 763119639404235797665922677433332402402817037657141926646502\
320 612388421085254756323737273178774331073924707711575555193153\
321 421957126062196520952920611871114861423032687425262323243276\
322 848595495133802591437804984986053892365334900647137137197585\
323 161954823956838391108748154877098567190695813394392779995887\
324 642254413740232692940887236351533691174492514884514265006822\
325 752026136435469700291628942927286843274959781329315250417360\
326 438115330104516894597449604875954147108010051910197388860417\
327 003307595774863477182911525109554542883460240867674794470854\
328 883815424039187014069246137704710366577005576311674384079810\
329 437206511282792194562503036151028910065418370565117488062226\
330 073975854919243439941741016447206284543777826080409075756028\
331 194465562812076645422284670475730922346454505830553174377950\
332 824178034708147037448871898963699023373821217419560423459358\
333 846127232531421552826545954362386431279626917642725181802754\
334 271134597856231805666129524101509582941585421888561296839474\
335 232056474112935379177434928227554149402642893913492062781246\
336 372611175305462271711931011635602039137701669573065960945871\
337 579420683440097179831368317352157202215160682058878025153007\
338 184185319863451652087375936651004559837502483808090613073982\
339 264685620351993519454344577635257452328683726988824705474397\
340 398247190812883071734743260426540123481791283782928972842466\
341 595210269414219040901793935553872090377394005932597887081359\
342 481915849178541128182923272843218513093012167744690818603663\
343 862691727272565325057703378827553284852502067686026850339624\
344 401046086817036618366842240024522042069888708534827471235203\
345 998932259309110942367856287784097166420437430118381247339347\
346 418156902369282431197735078016591613063918260343498992697002\
347 033186558413655576703389208301203552157755701852051877927864\
348 696515420369217703510602759815252574799728706795849558382877\
349 392016396900560101736741462690753991602263974212137632508984\
350 264559315540891383192361601189350414311358816980975697568561\
351 515680971830107704152657284552920241862730125888825702301035\
352 564615759615882010733764341109834449576907982406265803484111\
353 303615971297609065271517286111839839646343815364461776394273\
354 571391219315553915335300622295196577640884201524657614065743\
355 729121754460652975075990012786021662416077757235487562550381\
356 116824006014440438178253273174734436163638119532295383351135\
357 543170811596051785036366846773285937845231974424475418970517\
358 659179798069972876889488877627309887323737590814875050457317\
359 809625163713227973229002908003491739085115971899606986738405\
360 752463436186745107821032315480693516006251388789902053863235\
361 071957895722121876262598833823352290042576488238120724072267\
362 480348425637199003147760378463243043407534395221882144887315\
363 875876025907739792297575795373506429192468470170038312050500\
364 917665707583420927303790875332407805094505665159755210495266\
365 485594187244922216154283213688032393939401426499517609275128\
366 062067355172333120857796045387692492375534056470145301671359\
367 016602832469675123108598588424022216759334733452626330303791\
368 660952659036162827509451468771297954737165701921676834866994\
369 084496268491510599580714458155026746676860790028899722645883\
370 679435969902046442373108472951515492761911884847211825930115\
371 654927539118088350255959445076757398298893380662248358210075\
372 297702191186519614515280395341723177201383862827129721649638\
373 274531314762377778754560119397123180107310216608157141828379\
374 259328274508467371717057031104537750450228447941619684073375\
375 630517322006118640290925241602376256334414376495602911265450\
376 165889418372161719063670619610214632774542741157366426747861\
377 054811449449004970132668146607323502760146957586465275981090\
378 328336256381187450646030492071694516054712444513961269623339\
379 705411366337817643269316717217432478812002049894979925260411\
380 553651385384826214231392012841425936827944383266227115236029\
381 717393064659821056467446870597828757433936024422511537561864\
382 619865595955628070343780472634463916608440151554502790128417\
383 277259492437005696576453717387309605129939526661181496994297\
384 244693710437436581443653555343763817246961834486181294985455\
385 884981266421533438177271809310897035958260776218253097858601\
386 160643120653927024652834025146166356877731266566437231429061\
387 099807825113272551869352908241073955695854354852545370793609\
388 838167127357752579007490955536081388103461735071174567636929\
389 060824172375010035497010614957197713919909924635906503348016\
390 450952475530978921242656498701313530533991692867619886826204\
391 706468476070943378163577235406861262755114909606255628375659\
392 196050370661430148107216310635729360112021571291096278032076\
393 401092225373270173950575377792566872113768085940991929655824\
394 050914085013970861399015141010432835406337266746706727481946\
395 196898882472095111505210339933002505227334750020285673634670\
396 738458390159933494226851499935336922036551687169140582574153\
397 726872453800858360764892975201757027862632615130256075468549\
398 502839367841926212872731925042838691319757663382746471782087\
399 828988857978192483595747889021081459460627705275735868618724\
400 958783348362295106875556443770626864591972089881215465141073\
401 516646930158996569747675806719463602045230325049794904894739\
402 988312727573320971310488326486213061839843830003145873279435\
403 454121817918269218294901387830156432148142381592864575229119\
404 479029130050663564889172093067341444164942736885872753984012\
405 865743421266470861425283889134636885790293235727017788606167\
406 560012477186697069994213912998550931078617189790771376702549\
407 055361745205232419031423044366971378594392952093464046441667\
408 117613906203494872209149396518971207279263883566606774353236\
409 255473603377861613942239543893894460581170658088042083661404\
410 937465706659424639301296621963906278930754459296017486063079\
411 582024995485338893699574289806529424673393810217577605952909\
412 491283123179789154639057105774960699934999681018155749261864\
413 012821574480758746632022143860041252142846691648490809250856\
414 327057133540568617791625295314357533564192304930155735301757\
415 457531580062662693966772497728335047637869054460240023262262\
416 260698443946964564691259441706490611176164305693669515767804\
417 836460521205954731752583848846525153811934541997962775215961\
418 180346397456122329133421016560406277159258781706172834569862\
419 946953007793254152187010227976038449980797987728559041018441\
420 590564594738308310579014597893182017151615208050090318483536\
421 106249131918576316944251537092347119867433735046169725181104\
422 507590928834713669184230634083190791725243913641206256399101\
423 550966117564795555149420011152858441084271411289366093158722\
424 254752761637144762690747726313899449121995142565661043193165\
425 353010677613760383307839362361625628371456344409245507081913\
426 518237257141164239966660785903970075181826808229440731778746\
427 830751045427285945936163931997929399708401851740705527023711\
428 492262489476846435969872480702228386506357017948329114555484\
429 164760105906717855684788039081591713778852802032849601308169\
430 832017420608399347713424218434541771868442189843417628618330\
431 607429739733739437863581804003482214082370567967330530446020\
432 897773385726872912189813323094415093143437550397556262780011\
433 208941731420098754319961419532567861629590267320403217607660\
434 774125374101195389953895035347940170148097810952083736798564\
435 420421622607993390894450932047257403433908665884124601384175\
436 012387617430467934818665777122459487877479257747635172691688\
437 471574765285820096075133353869554987216398800026453207557923\
438 535966131756358352198875705382763163680830588056974671628368\
439 719411827591592806044707764658145625683998557872894583705117\
440 936257144994734815912058252772021032081682437093280526665192\
441 728869800954748014250481042845426151143544474372887617562791\
442 409866964806319608280819816846942058817381943129762034507591\
443 367065185343216917751414811188645979508942996964383255432999\
444 246119971295726296202396921903289017490293595312645036697141\
445 581149988784499288560584613793415358537364677872496224892098\
446 940856692342358755626519304557946447004033186014602147449599\
447 351317079758304444877174136521487256811625263467410007624215\
448 856145392339552689565690577293133060124853654497575571509576\
449 408069646196646757505249296126372820539234090564691695806544\
450 715766025588258581902342311480969412221466852421842650484494\
451 063894865891424563992751226230317059592413191308470146226366\
452 458233536657973376067140793776369412191789801225320255079444\
453 592709005698858098716107025188986428347407279053266600044521\
454 079987989879536957560131070100060050673537683871138182387904\
455 590837539252425985326631955455857258818756188063697492342550\
456 045277400125480079927908846850898283905756532829762950509886\
457 991675925213188409911532242068610889478326451513981115020992\
458 630395715520350039372702741107911736947893709538471200363740\
459 669304116845653259038102180504837110789645359520309929381266\
460 271463740502507456882882255788069710715770802338317704510793\
461 279398576163709512326095306022330346997717688118726634628650\
462 675984237916551201500684504118483305560295744746257951860545\
463 390826531622290588364837980034428055971370065573420370270905\
464 592141420051502465016793525150950140243606137664910359769114\
465 512792293426708006440346732679574519594848136194781488696994\
466 267355775509666977187349644291823026624985531726865131782364\
467 428380093055155988532106121916567178604128111080322761213573\
468 781334480667563871257352254033032675246444238637990062075058\
469 819854494711379915549313390179300091783493496822950479766923\
470 983305064901026858870340863556799948310622536592472509634484\
471 910640735459644047154918467543140024764605449756679450446473\
472 048922824617117723876384637412932380635306714345354710568410\
473 140587435077620501285599837051978855056335305570615129711860\
474 309387503970812843734718712815925040263182888714533431137355\
475 255722368962836390856001176889513153529416105504464217522618\
476 741534232432067776306691118141998014985541610448993152948945\
477 865983354717289054861249734477980864059509622993770525110616\
478 313865830823478927462500895844216364365499438449134659145333\
479 799994034010282254566331595018205841080487728993632798168070\
480 476921205941768965021887178681810499301253039335978279707627\
481 295287697256489961179958946847840431902105306618594831078534\
482 622089641993900896756734276531931450266972752637997248151974\
483 2277811246822238899767398834228515624999e-4951L;
484 static const long double ld1b
=
485 1.8225997659412373012642029668097099081995254078467816718604\
486 902435141858443166988684047803543129136025986236736736017655\
487 509834928163110160849867540377949045027419112905889658392846\
488 126319028167798783107812829917053644701598967767636342956203\
489 999770864055077592691915230273843577112246476529298591341071\
490 313110337661777304220340396298768698441131694859514066773321\
491 059786469060001083813361460161387168195154228027648977594276\
492 496061276605855817438145692314650177569263750801566422892936\
493 732834290416745265618525969943519916542939199731612507343012\
494 297331882934352282118173551211985973294301787840335672389913\
495 821098681464088756477802684228806339233239542587316254618680\
496 197563613907079766830481997222017010585267442240109888818022\
497 189543438116245170584546472752661417773021275082355242554950\
498 776248474101880875363872607989624146320823364146896124171892\
499 610744237622308266702265704492674694505399997330424978964704\
500 335411125839490463131661420668167686151828553033363555080508\
501 484934542727634080467233927879117726432283352324546435315312\
502 937809651095964197873430398662003709663353962932921239516263\
503 008572512558260093668527782388349282015308359304941505110445\
504 043762021191469060607078792635897736408141163554429972292873\
505 575169264387977130124003958599909776720759582995017519144111\
506 001778329839793855454688442046155253818724410472281602421363\
507 580613990749181808302947976045417884436271162664776148749463\
508 202753814797191206392480969096910387729527305862739806702349\
509 088455828380471306603628636563037414688265702108098430515297\
510 645997107159687247830496686980315376091511219227376708389862\
511 310190633134517040835432587726931910775044780329777051964574\
512 763119639404235797665922677433332402402817037657141926646502\
513 612388421085254756323737273178774331073924707711575555193153\
514 421957126062196520952920611871114861423032687425262323243276\
515 848595495133802591437804984986053892365334900647137137197585\
516 161954823956838391108748154877098567190695813394392779995887\
517 642254413740232692940887236351533691174492514884514265006822\
518 752026136435469700291628942927286843274959781329315250417360\
519 438115330104516894597449604875954147108010051910197388860417\
520 003307595774863477182911525109554542883460240867674794470854\
521 883815424039187014069246137704710366577005576311674384079810\
522 437206511282792194562503036151028910065418370565117488062226\
523 073975854919243439941741016447206284543777826080409075756028\
524 194465562812076645422284670475730922346454505830553174377950\
525 824178034708147037448871898963699023373821217419560423459358\
526 846127232531421552826545954362386431279626917642725181802754\
527 271134597856231805666129524101509582941585421888561296839474\
528 232056474112935379177434928227554149402642893913492062781246\
529 372611175305462271711931011635602039137701669573065960945871\
530 579420683440097179831368317352157202215160682058878025153007\
531 184185319863451652087375936651004559837502483808090613073982\
532 264685620351993519454344577635257452328683726988824705474397\
533 398247190812883071734743260426540123481791283782928972842466\
534 595210269414219040901793935553872090377394005932597887081359\
535 481915849178541128182923272843218513093012167744690818603663\
536 862691727272565325057703378827553284852502067686026850339624\
537 401046086817036618366842240024522042069888708534827471235203\
538 998932259309110942367856287784097166420437430118381247339347\
539 418156902369282431197735078016591613063918260343498992697002\
540 033186558413655576703389208301203552157755701852051877927864\
541 696515420369217703510602759815252574799728706795849558382877\
542 392016396900560101736741462690753991602263974212137632508984\
543 264559315540891383192361601189350414311358816980975697568561\
544 515680971830107704152657284552920241862730125888825702301035\
545 564615759615882010733764341109834449576907982406265803484111\
546 303615971297609065271517286111839839646343815364461776394273\
547 571391219315553915335300622295196577640884201524657614065743\
548 729121754460652975075990012786021662416077757235487562550381\
549 116824006014440438178253273174734436163638119532295383351135\
550 543170811596051785036366846773285937845231974424475418970517\
551 659179798069972876889488877627309887323737590814875050457317\
552 809625163713227973229002908003491739085115971899606986738405\
553 752463436186745107821032315480693516006251388789902053863235\
554 071957895722121876262598833823352290042576488238120724072267\
555 480348425637199003147760378463243043407534395221882144887315\
556 875876025907739792297575795373506429192468470170038312050500\
557 917665707583420927303790875332407805094505665159755210495266\
558 485594187244922216154283213688032393939401426499517609275128\
559 062067355172333120857796045387692492375534056470145301671359\
560 016602832469675123108598588424022216759334733452626330303791\
561 660952659036162827509451468771297954737165701921676834866994\
562 084496268491510599580714458155026746676860790028899722645883\
563 679435969902046442373108472951515492761911884847211825930115\
564 654927539118088350255959445076757398298893380662248358210075\
565 297702191186519614515280395341723177201383862827129721649638\
566 274531314762377778754560119397123180107310216608157141828379\
567 259328274508467371717057031104537750450228447941619684073375\
568 630517322006118640290925241602376256334414376495602911265450\
569 165889418372161719063670619610214632774542741157366426747861\
570 054811449449004970132668146607323502760146957586465275981090\
571 328336256381187450646030492071694516054712444513961269623339\
572 705411366337817643269316717217432478812002049894979925260411\
573 553651385384826214231392012841425936827944383266227115236029\
574 717393064659821056467446870597828757433936024422511537561864\
575 619865595955628070343780472634463916608440151554502790128417\
576 277259492437005696576453717387309605129939526661181496994297\
577 244693710437436581443653555343763817246961834486181294985455\
578 884981266421533438177271809310897035958260776218253097858601\
579 160643120653927024652834025146166356877731266566437231429061\
580 099807825113272551869352908241073955695854354852545370793609\
581 838167127357752579007490955536081388103461735071174567636929\
582 060824172375010035497010614957197713919909924635906503348016\
583 450952475530978921242656498701313530533991692867619886826204\
584 706468476070943378163577235406861262755114909606255628375659\
585 196050370661430148107216310635729360112021571291096278032076\
586 401092225373270173950575377792566872113768085940991929655824\
587 050914085013970861399015141010432835406337266746706727481946\
588 196898882472095111505210339933002505227334750020285673634670\
589 738458390159933494226851499935336922036551687169140582574153\
590 726872453800858360764892975201757027862632615130256075468549\
591 502839367841926212872731925042838691319757663382746471782087\
592 828988857978192483595747889021081459460627705275735868618724\
593 958783348362295106875556443770626864591972089881215465141073\
594 516646930158996569747675806719463602045230325049794904894739\
595 988312727573320971310488326486213061839843830003145873279435\
596 454121817918269218294901387830156432148142381592864575229119\
597 479029130050663564889172093067341444164942736885872753984012\
598 865743421266470861425283889134636885790293235727017788606167\
599 560012477186697069994213912998550931078617189790771376702549\
600 055361745205232419031423044366971378594392952093464046441667\
601 117613906203494872209149396518971207279263883566606774353236\
602 255473603377861613942239543893894460581170658088042083661404\
603 937465706659424639301296621963906278930754459296017486063079\
604 582024995485338893699574289806529424673393810217577605952909\
605 491283123179789154639057105774960699934999681018155749261864\
606 012821574480758746632022143860041252142846691648490809250856\
607 327057133540568617791625295314357533564192304930155735301757\
608 457531580062662693966772497728335047637869054460240023262262\
609 260698443946964564691259441706490611176164305693669515767804\
610 836460521205954731752583848846525153811934541997962775215961\
611 180346397456122329133421016560406277159258781706172834569862\
612 946953007793254152187010227976038449980797987728559041018441\
613 590564594738308310579014597893182017151615208050090318483536\
614 106249131918576316944251537092347119867433735046169725181104\
615 507590928834713669184230634083190791725243913641206256399101\
616 550966117564795555149420011152858441084271411289366093158722\
617 254752761637144762690747726313899449121995142565661043193165\
618 353010677613760383307839362361625628371456344409245507081913\
619 518237257141164239966660785903970075181826808229440731778746\
620 830751045427285945936163931997929399708401851740705527023711\
621 492262489476846435969872480702228386506357017948329114555484\
622 164760105906717855684788039081591713778852802032849601308169\
623 832017420608399347713424218434541771868442189843417628618330\
624 607429739733739437863581804003482214082370567967330530446020\
625 897773385726872912189813323094415093143437550397556262780011\
626 208941731420098754319961419532567861629590267320403217607660\
627 774125374101195389953895035347940170148097810952083736798564\
628 420421622607993390894450932047257403433908665884124601384175\
629 012387617430467934818665777122459487877479257747635172691688\
630 471574765285820096075133353869554987216398800026453207557923\
631 535966131756358352198875705382763163680830588056974671628368\
632 719411827591592806044707764658145625683998557872894583705117\
633 936257144994734815912058252772021032081682437093280526665192\
634 728869800954748014250481042845426151143544474372887617562791\
635 409866964806319608280819816846942058817381943129762034507591\
636 367065185343216917751414811188645979508942996964383255432999\
637 246119971295726296202396921903289017490293595312645036697141\
638 581149988784499288560584613793415358537364677872496224892098\
639 940856692342358755626519304557946447004033186014602147449599\
640 351317079758304444877174136521487256811625263467410007624215\
641 856145392339552689565690577293133060124853654497575571509576\
642 408069646196646757505249296126372820539234090564691695806544\
643 715766025588258581902342311480969412221466852421842650484494\
644 063894865891424563992751226230317059592413191308470146226366\
645 458233536657973376067140793776369412191789801225320255079444\
646 592709005698858098716107025188986428347407279053266600044521\
647 079987989879536957560131070100060050673537683871138182387904\
648 590837539252425985326631955455857258818756188063697492342550\
649 045277400125480079927908846850898283905756532829762950509886\
650 991675925213188409911532242068610889478326451513981115020992\
651 630395715520350039372702741107911736947893709538471200363740\
652 669304116845653259038102180504837110789645359520309929381266\
653 271463740502507456882882255788069710715770802338317704510793\
654 279398576163709512326095306022330346997717688118726634628650\
655 675984237916551201500684504118483305560295744746257951860545\
656 390826531622290588364837980034428055971370065573420370270905\
657 592141420051502465016793525150950140243606137664910359769114\
658 512792293426708006440346732679574519594848136194781488696994\
659 267355775509666977187349644291823026624985531726865131782364\
660 428380093055155988532106121916567178604128111080322761213573\
661 781334480667563871257352254033032675246444238637990062075058\
662 819854494711379915549313390179300091783493496822950479766923\
663 983305064901026858870340863556799948310622536592472509634484\
664 910640735459644047154918467543140024764605449756679450446473\
665 048922824617117723876384637412932380635306714345354710568410\
666 140587435077620501285599837051978855056335305570615129711860\
667 309387503970812843734718712815925040263182888714533431137355\
668 255722368962836390856001176889513153529416105504464217522618\
669 741534232432067776306691118141998014985541610448993152948945\
670 865983354717289054861249734477980864059509622993770525110616\
671 313865830823478927462500895844216364365499438449134659145333\
672 799994034010282254566331595018205841080487728993632798168070\
673 476921205941768965021887178681810499301253039335978279707627\
674 295287697256489961179958946847840431902105306618594831078534\
675 622089641993900896756734276531931450266972752637997248151974\
676 2277811246822238899767398834228515625e-4951L;
677 static const long double ld1c
=
678 1.8225997659412373012642029668097099081995254078467816718604\
679 902435141858443166988684047803543129136025986236736736017655\
680 509834928163110160849867540377949045027419112905889658392846\
681 126319028167798783107812829917053644701598967767636342956203\
682 999770864055077592691915230273843577112246476529298591341071\
683 313110337661777304220340396298768698441131694859514066773321\
684 059786469060001083813361460161387168195154228027648977594276\
685 496061276605855817438145692314650177569263750801566422892936\
686 732834290416745265618525969943519916542939199731612507343012\
687 297331882934352282118173551211985973294301787840335672389913\
688 821098681464088756477802684228806339233239542587316254618680\
689 197563613907079766830481997222017010585267442240109888818022\
690 189543438116245170584546472752661417773021275082355242554950\
691 776248474101880875363872607989624146320823364146896124171892\
692 610744237622308266702265704492674694505399997330424978964704\
693 335411125839490463131661420668167686151828553033363555080508\
694 484934542727634080467233927879117726432283352324546435315312\
695 937809651095964197873430398662003709663353962932921239516263\
696 008572512558260093668527782388349282015308359304941505110445\
697 043762021191469060607078792635897736408141163554429972292873\
698 575169264387977130124003958599909776720759582995017519144111\
699 001778329839793855454688442046155253818724410472281602421363\
700 580613990749181808302947976045417884436271162664776148749463\
701 202753814797191206392480969096910387729527305862739806702349\
702 088455828380471306603628636563037414688265702108098430515297\
703 645997107159687247830496686980315376091511219227376708389862\
704 310190633134517040835432587726931910775044780329777051964574\
705 763119639404235797665922677433332402402817037657141926646502\
706 612388421085254756323737273178774331073924707711575555193153\
707 421957126062196520952920611871114861423032687425262323243276\
708 848595495133802591437804984986053892365334900647137137197585\
709 161954823956838391108748154877098567190695813394392779995887\
710 642254413740232692940887236351533691174492514884514265006822\
711 752026136435469700291628942927286843274959781329315250417360\
712 438115330104516894597449604875954147108010051910197388860417\
713 003307595774863477182911525109554542883460240867674794470854\
714 883815424039187014069246137704710366577005576311674384079810\
715 437206511282792194562503036151028910065418370565117488062226\
716 073975854919243439941741016447206284543777826080409075756028\
717 194465562812076645422284670475730922346454505830553174377950\
718 824178034708147037448871898963699023373821217419560423459358\
719 846127232531421552826545954362386431279626917642725181802754\
720 271134597856231805666129524101509582941585421888561296839474\
721 232056474112935379177434928227554149402642893913492062781246\
722 372611175305462271711931011635602039137701669573065960945871\
723 579420683440097179831368317352157202215160682058878025153007\
724 184185319863451652087375936651004559837502483808090613073982\
725 264685620351993519454344577635257452328683726988824705474397\
726 398247190812883071734743260426540123481791283782928972842466\
727 595210269414219040901793935553872090377394005932597887081359\
728 481915849178541128182923272843218513093012167744690818603663\
729 862691727272565325057703378827553284852502067686026850339624\
730 401046086817036618366842240024522042069888708534827471235203\
731 998932259309110942367856287784097166420437430118381247339347\
732 418156902369282431197735078016591613063918260343498992697002\
733 033186558413655576703389208301203552157755701852051877927864\
734 696515420369217703510602759815252574799728706795849558382877\
735 392016396900560101736741462690753991602263974212137632508984\
736 264559315540891383192361601189350414311358816980975697568561\
737 515680971830107704152657284552920241862730125888825702301035\
738 564615759615882010733764341109834449576907982406265803484111\
739 303615971297609065271517286111839839646343815364461776394273\
740 571391219315553915335300622295196577640884201524657614065743\
741 729121754460652975075990012786021662416077757235487562550381\
742 116824006014440438178253273174734436163638119532295383351135\
743 543170811596051785036366846773285937845231974424475418970517\
744 659179798069972876889488877627309887323737590814875050457317\
745 809625163713227973229002908003491739085115971899606986738405\
746 752463436186745107821032315480693516006251388789902053863235\
747 071957895722121876262598833823352290042576488238120724072267\
748 480348425637199003147760378463243043407534395221882144887315\
749 875876025907739792297575795373506429192468470170038312050500\
750 917665707583420927303790875332407805094505665159755210495266\
751 485594187244922216154283213688032393939401426499517609275128\
752 062067355172333120857796045387692492375534056470145301671359\
753 016602832469675123108598588424022216759334733452626330303791\
754 660952659036162827509451468771297954737165701921676834866994\
755 084496268491510599580714458155026746676860790028899722645883\
756 679435969902046442373108472951515492761911884847211825930115\
757 654927539118088350255959445076757398298893380662248358210075\
758 297702191186519614515280395341723177201383862827129721649638\
759 274531314762377778754560119397123180107310216608157141828379\
760 259328274508467371717057031104537750450228447941619684073375\
761 630517322006118640290925241602376256334414376495602911265450\
762 165889418372161719063670619610214632774542741157366426747861\
763 054811449449004970132668146607323502760146957586465275981090\
764 328336256381187450646030492071694516054712444513961269623339\
765 705411366337817643269316717217432478812002049894979925260411\
766 553651385384826214231392012841425936827944383266227115236029\
767 717393064659821056467446870597828757433936024422511537561864\
768 619865595955628070343780472634463916608440151554502790128417\
769 277259492437005696576453717387309605129939526661181496994297\
770 244693710437436581443653555343763817246961834486181294985455\
771 884981266421533438177271809310897035958260776218253097858601\
772 160643120653927024652834025146166356877731266566437231429061\
773 099807825113272551869352908241073955695854354852545370793609\
774 838167127357752579007490955536081388103461735071174567636929\
775 060824172375010035497010614957197713919909924635906503348016\
776 450952475530978921242656498701313530533991692867619886826204\
777 706468476070943378163577235406861262755114909606255628375659\
778 196050370661430148107216310635729360112021571291096278032076\
779 401092225373270173950575377792566872113768085940991929655824\
780 050914085013970861399015141010432835406337266746706727481946\
781 196898882472095111505210339933002505227334750020285673634670\
782 738458390159933494226851499935336922036551687169140582574153\
783 726872453800858360764892975201757027862632615130256075468549\
784 502839367841926212872731925042838691319757663382746471782087\
785 828988857978192483595747889021081459460627705275735868618724\
786 958783348362295106875556443770626864591972089881215465141073\
787 516646930158996569747675806719463602045230325049794904894739\
788 988312727573320971310488326486213061839843830003145873279435\
789 454121817918269218294901387830156432148142381592864575229119\
790 479029130050663564889172093067341444164942736885872753984012\
791 865743421266470861425283889134636885790293235727017788606167\
792 560012477186697069994213912998550931078617189790771376702549\
793 055361745205232419031423044366971378594392952093464046441667\
794 117613906203494872209149396518971207279263883566606774353236\
795 255473603377861613942239543893894460581170658088042083661404\
796 937465706659424639301296621963906278930754459296017486063079\
797 582024995485338893699574289806529424673393810217577605952909\
798 491283123179789154639057105774960699934999681018155749261864\
799 012821574480758746632022143860041252142846691648490809250856\
800 327057133540568617791625295314357533564192304930155735301757\
801 457531580062662693966772497728335047637869054460240023262262\
802 260698443946964564691259441706490611176164305693669515767804\
803 836460521205954731752583848846525153811934541997962775215961\
804 180346397456122329133421016560406277159258781706172834569862\
805 946953007793254152187010227976038449980797987728559041018441\
806 590564594738308310579014597893182017151615208050090318483536\
807 106249131918576316944251537092347119867433735046169725181104\
808 507590928834713669184230634083190791725243913641206256399101\
809 550966117564795555149420011152858441084271411289366093158722\
810 254752761637144762690747726313899449121995142565661043193165\
811 353010677613760383307839362361625628371456344409245507081913\
812 518237257141164239966660785903970075181826808229440731778746\
813 830751045427285945936163931997929399708401851740705527023711\
814 492262489476846435969872480702228386506357017948329114555484\
815 164760105906717855684788039081591713778852802032849601308169\
816 832017420608399347713424218434541771868442189843417628618330\
817 607429739733739437863581804003482214082370567967330530446020\
818 897773385726872912189813323094415093143437550397556262780011\
819 208941731420098754319961419532567861629590267320403217607660\
820 774125374101195389953895035347940170148097810952083736798564\
821 420421622607993390894450932047257403433908665884124601384175\
822 012387617430467934818665777122459487877479257747635172691688\
823 471574765285820096075133353869554987216398800026453207557923\
824 535966131756358352198875705382763163680830588056974671628368\
825 719411827591592806044707764658145625683998557872894583705117\
826 936257144994734815912058252772021032081682437093280526665192\
827 728869800954748014250481042845426151143544474372887617562791\
828 409866964806319608280819816846942058817381943129762034507591\
829 367065185343216917751414811188645979508942996964383255432999\
830 246119971295726296202396921903289017490293595312645036697141\
831 581149988784499288560584613793415358537364677872496224892098\
832 940856692342358755626519304557946447004033186014602147449599\
833 351317079758304444877174136521487256811625263467410007624215\
834 856145392339552689565690577293133060124853654497575571509576\
835 408069646196646757505249296126372820539234090564691695806544\
836 715766025588258581902342311480969412221466852421842650484494\
837 063894865891424563992751226230317059592413191308470146226366\
838 458233536657973376067140793776369412191789801225320255079444\
839 592709005698858098716107025188986428347407279053266600044521\
840 079987989879536957560131070100060050673537683871138182387904\
841 590837539252425985326631955455857258818756188063697492342550\
842 045277400125480079927908846850898283905756532829762950509886\
843 991675925213188409911532242068610889478326451513981115020992\
844 630395715520350039372702741107911736947893709538471200363740\
845 669304116845653259038102180504837110789645359520309929381266\
846 271463740502507456882882255788069710715770802338317704510793\
847 279398576163709512326095306022330346997717688118726634628650\
848 675984237916551201500684504118483305560295744746257951860545\
849 390826531622290588364837980034428055971370065573420370270905\
850 592141420051502465016793525150950140243606137664910359769114\
851 512792293426708006440346732679574519594848136194781488696994\
852 267355775509666977187349644291823026624985531726865131782364\
853 428380093055155988532106121916567178604128111080322761213573\
854 781334480667563871257352254033032675246444238637990062075058\
855 819854494711379915549313390179300091783493496822950479766923\
856 983305064901026858870340863556799948310622536592472509634484\
857 910640735459644047154918467543140024764605449756679450446473\
858 048922824617117723876384637412932380635306714345354710568410\
859 140587435077620501285599837051978855056335305570615129711860\
860 309387503970812843734718712815925040263182888714533431137355\
861 255722368962836390856001176889513153529416105504464217522618\
862 741534232432067776306691118141998014985541610448993152948945\
863 865983354717289054861249734477980864059509622993770525110616\
864 313865830823478927462500895844216364365499438449134659145333\
865 799994034010282254566331595018205841080487728993632798168070\
866 476921205941768965021887178681810499301253039335978279707627\
867 295287697256489961179958946847840431902105306618594831078534\
868 622089641993900896756734276531931450266972752637997248151974\
869 2277811246822238899767398834228515625001e-4951L;
871 static const long double ld2ae
= 0x1p
-16445L, ld2be
= 0x2p
-16445L, ld2ce
= 0x2p
-16445L;
872 static const long double ld2a
=
873 5.4677992978237119037926089004291297245985762235403450155814\
874 707305425575329500966052143410629387408077958710210208052966\
875 529504784489330482549602621133847135082257338717668975178538\
876 378957084503396349323438489751160934104796903302909028868611\
877 999312592165232778075745690821530731336739429587895774023213\
878 939331012985331912661021188896306095323395084578542200319963\
879 179359407180003251440084380484161504585462684082946932782829\
880 488183829817567452314437076943950532707791252404699268678810\
881 198502871250235796855577909830559749628817599194837522029036\
882 891995648803056846354520653635957919882905363521007017169741\
883 463296044392266269433408052686419017699718627761948763856040\
884 592690841721239300491445991666051031755802326720329666454066\
885 568630314348735511753639418257984253319063825247065727664852\
886 328745422305642626091617823968872438962470092440688372515677\
887 832232712866924800106797113478024083516199991991274936894113\
888 006233377518471389394984262004503058455485659100090665241525\
889 454803628182902241401701783637353179296850056973639305945938\
890 813428953287892593620291195986011128990061888798763718548789\
891 025717537674780281005583347165047846045925077914824515331335\
892 131286063574407181821236377907693209224423490663289916878620\
893 725507793163931390372011875799729330162278748985052557432333\
894 005334989519381566364065326138465761456173231416844807264090\
895 741841972247545424908843928136253653308813487994328446248389\
896 608261444391573619177442907290731163188581917588219420107047\
897 265367485141413919810885909689112244064797106324295291545892\
898 937991321479061743491490060940946128274533657682130125169586\
899 930571899403551122506297763180795732325134340989331155893724\
900 289358918212707392997768032299997207208451112971425779939507\
901 837165263255764268971211819536322993221774123134726665579460\
902 265871378186589562858761835613344584269098062275786969729830\
903 545786485401407774313414954958161677096004701941411411592755\
904 485864471870515173326244464631295701572087440183178339987662\
905 926763241220698078822661709054601073523477544653542795020468\
906 256078409306409100874886828781860529824879343987945751252081\
907 314345990313550683792348814627862441324030155730592166581251\
908 009922787324590431548734575328663628650380722603024383412564\
909 651446272117561042207738413114131099731016728935023152239431\
910 311619533848376583687509108453086730196255111695352464186678\
911 221927564757730319825223049341618853631333478241227227268084\
912 583396688436229936266854011427192767039363517491659523133852\
913 472534104124441112346615696891097070121463652258681270378076\
914 538381697594264658479637863087159293838880752928175545408262\
915 813403793568695416998388572304528748824756265665683890518422\
916 696169422338806137532304784682662448207928681740476188343739\
917 117833525916386815135793034906806117413105008719197882837614\
918 738262050320291539494104952056471606645482046176634075459021\
919 552555959590354956262127809953013679512507451424271839221946\
920 794056861055980558363033732905772356986051180966474116423192\
921 194741572438649215204229781279620370445373851348786918527399\
922 785630808242657122705381806661616271132182017797793661244078\
923 445747547535623384548769818529655539279036503234072455810991\
924 588075181817695975173110136482659854557506203058080551018873\
925 203138260451109855100526720073566126209666125604482413705611\
926 996796777927332827103568863352291499261312290355143742018042\
927 254470707107847293593205234049774839191754781030496978091006\
928 099559675240966730110167624903610656473267105556155633783594\
929 089546261107653110531808279445757724399186120387548675148632\
930 176049190701680305210224388072261974806791922636412897526952\
931 793677946622674149577084803568051242934076450942927092705684\
932 547042915490323112457971853658760725588190377666477106903106\
933 693847278847646032201293023329503348730723947218797410452333\
934 910847913892827195814551858335519518939031446093385329182820\
935 714173657946661746005901866885589732922652604573972842197231\
936 187365263381958925227970038358064987248233271706462687651143\
937 350472018043321314534759819524203308490914358596886150053406\
938 629512434788155355109100540319857813535695923273426256911552\
939 977539394209918630668466632881929661971212772444625151371953\
940 428875491139683919687008724010475217255347915698820960215217\
941 257390308560235323463096946442080548018754166369706161589705\
942 215873687166365628787796501470056870127729464714362172216802\
943 441045276911597009443281135389729130222603185665646434661947\
944 627628077723219376892727386120519287577405410510114936151502\
945 752997122750262781911372625997223415283516995479265631485799\
946 456782561734766648462849641064097181818204279498552827825384\
947 186202065516999362573388136163077477126602169410435905014077\
948 049808497409025369325795765272066650278004200357878990911374\
949 982857977108488482528354406313893864211497105765030504600982\
950 253488805474531798742143374465080240030582370086699167937651\
951 038307909706139327119325418854546478285735654541635477790346\
952 964782617354265050767878335230272194896680141986745074630225\
953 893106573559558843545841186025169531604151588481389164948914\
954 823593944287133336263680358191369540321930649824471425485137\
955 777984823525402115151171093313613251350685343824859052220126\
956 891551966018355920872775724807128769003243129486808733796350\
957 497668255116485157191011858830643898323628223472099280243583\
958 164434348347014910398004439821970508280440872759395827943270\
959 985008769143562351938091476215083548164137333541883808870019\
960 116234099013452929807950151652297436436006149684939775781234\
961 660954156154478642694176038524277810483833149798681345708089\
962 152179193979463169402340611793486272301808073267534612685593\
963 859596787866884211031341417903391749825320454663508370385251\
964 831778477311017089729361152161928815389818579983544490982891\
965 734081131312309744330960666031291451740885503458543884956367\
966 654943799264600314531815427932691107874782328654759293575803\
967 481929361961781073958502075438499070633193799699311694287183\
968 299423475339817655608058724723221867087563064557636112380829\
969 514501382073257737022472866608244164310385205213523702910787\
970 182472517125030106491031844871593141759729773907719510044049\
971 352857426592936763727969496103940591601975078602859660478614\
972 119405428212830134490731706220583788265344728818766885126977\
973 588151111984290444321648931907188080336064713873288834096229\
974 203276676119810521851726133377700616341304257822975788967472\
975 152742255041912584197045423031298506219011800240120182445838\
976 590696647416285334515631019799007515682004250060857020904012\
977 215375170479800482680554499806010766109655061507421747722461\
978 180617361402575082294678925605271083587897845390768226405648\
979 508518103525778638618195775128516073959272990148239415346263\
980 486966573934577450787243667063244378381883115827207605856174\
981 876350045086885320626669331311880593775916269643646395423220\
982 549940790476989709243027420158390806135690975149384714684219\
983 964938182719962913931464979458639185519531490009437619838306\
984 362365453754807654884704163490469296444427144778593725687358\
985 437087390151990694667516279202024332494828210657618261952038\
986 597230263799412584275851667403910657370879707181053365818502\
987 680037431560091209982641738995652793235851569372314130107647\
988 166085235615697257094269133100914135783178856280392139325001\
989 352841718610484616627448189556913621837791650699820323059708\
990 766420810133584841826718631681683381743511974264126250984214\
991 812397119978273917903889865891718836792263377888052458189238\
992 746074986456016681098722869419588274020181430652732817858728\
993 473849369539367463917171317324882099804999043054467247785592\
994 038464723442276239896066431580123756428540074945472427752568\
995 981171400621705853374875885943072600692576914790467205905272\
996 372594740187988081900317493185005142913607163380720069786786\
997 782095331840893694073778325119471833528492917081008547303414\
998 509381563617864195257751546539575461435803625993888325647883\
999 541039192368366987400263049681218831477776345118518503709588\
1000 840859023379762456561030683928115349942393963185677123055324\
1001 771693784214924931737043793679546051454845624150270955450608\
1002 318747395755728950832754611277041359602301205138509175543313\
1003 522772786504141007552691902249572375175731740923618769197304\
1004 652898352694386665448260033458575323252814233868098279476166\
1005 764258284911434288072243178941698347365985427696983129579496\
1006 059032032841281149923518087084876885114369033227736521245740\
1007 554711771423492719899982357711910225545480424688322195336240\
1008 492253136281857837808491795993788199125205555222116581071134\
1009 476787468430539307909617442106685159519071053844987343666452\
1010 494280317720153567054364117244775141336558406098548803924509\
1011 496052261825198043140272655303625315605326569530252885854991\
1012 822289219201218313590745412010446642247111703901991591338062\
1013 693320157180618736569439969283245279430312651192668788340033\
1014 626825194260296262959884258597703584888770801961209652822982\
1015 322376122303586169861685106043820510444293432856251210395693\
1016 261264867823980172683352796141772210301725997652373804152525\
1017 037162852291403804455997331367378463632437773242905518075065\
1018 414724295857460288225400061608664961649196400079359622673770\
1019 607898395269075056596627116148289491042491764170924014885106\
1020 158235482774778418134123293974436877051995673618683751115353\
1021 808771434984204447736174758316063096245047311279841579995578\
1022 186609402864244042751443128536278453430633423118662852688374\
1023 229600894418958824842459450540826176452145829389286103522774\
1024 101195556029650753254244433565937938526828990893149766298997\
1025 738359913887178888607190765709867052470880785937935110091424\
1026 743449966353497865681753841380246075612094033617488674676296\
1027 822570077027076266879557913673839341012099558043806442348798\
1028 053951239274913334631522409564461770434875790402230022872647\
1029 568436177018658068697071731879399180374560963492726714528729\
1030 224208938589940272515747888379118461617702271694075087419634\
1031 147298076764775745707026934442908236664400557265527951453482\
1032 191684597674273691978253678690951178777239573925410438679099\
1033 374700609973920128201422381329108236575369403675960765238333\
1034 778127017096574296148321075566959285042221837159799800133563\
1035 239963969638610872680393210300180152020613051613414547163713\
1036 772512617757277955979895866367571776456268564191092477027650\
1037 135832200376440239783726540552694851717269598489288851529660\
1038 975027775639565229734596726205832668434979354541943345062977\
1039 891187146561050118118108223323735210843681128615413601091222\
1040 007912350536959777114306541514511332368936078560929788143798\
1041 814391221507522370648646767364209132147312407014953113532379\
1042 838195728491128536978285918066991040993153064356179903885952\
1043 027952713749653604502053512355449916680887234238773855581636\
1044 172479594866871765094513940103284167914110196720261110812716\
1045 776424260154507395050380575452850420730818412994731079307343\
1046 538376880280124019321040198038723558784544408584344466090982\
1047 802067326529000931562048932875469079874956595180595395347093\
1048 285140279165467965596318365749701535812384333240968283640721\
1049 344003442002691613772056762099098025739332715913970186225176\
1050 459563484134139746647940170537900275350480490468851439300771\
1051 949915194703080576611022590670399844931867609777417528903454\
1052 731922206378932141464755402629420074293816349270038351339419\
1053 146768473851353171629153912238797141905920143036064131705230\
1054 421762305232861503856799511155936565169005916711845389135580\
1055 928162511912438531204156138447775120789548666143600293412065\
1056 767167106888509172568003530668539460588248316513392652567856\
1057 224602697296203328920073354425994044956624831346979458846837\
1058 597950064151867164583749203433942592178528868981311575331848\
1059 941597492470436782387502687532649093096498315347403977436001\
1060 399982102030846763698994785054617523241463186980898394504211\
1061 430763617825306895065661536045431497903759118007934839122881\
1062 885863091769469883539876840543521295706315919855784493235603\
1063 866268925981702690270202829595794350800918257913991744455922\
1064 6833433740466716699302196502685546874999e-4951L;
1065 static const long double ld2b
=
1066 5.4677992978237119037926089004291297245985762235403450155814\
1067 707305425575329500966052143410629387408077958710210208052966\
1068 529504784489330482549602621133847135082257338717668975178538\
1069 378957084503396349323438489751160934104796903302909028868611\
1070 999312592165232778075745690821530731336739429587895774023213\
1071 939331012985331912661021188896306095323395084578542200319963\
1072 179359407180003251440084380484161504585462684082946932782829\
1073 488183829817567452314437076943950532707791252404699268678810\
1074 198502871250235796855577909830559749628817599194837522029036\
1075 891995648803056846354520653635957919882905363521007017169741\
1076 463296044392266269433408052686419017699718627761948763856040\
1077 592690841721239300491445991666051031755802326720329666454066\
1078 568630314348735511753639418257984253319063825247065727664852\
1079 328745422305642626091617823968872438962470092440688372515677\
1080 832232712866924800106797113478024083516199991991274936894113\
1081 006233377518471389394984262004503058455485659100090665241525\
1082 454803628182902241401701783637353179296850056973639305945938\
1083 813428953287892593620291195986011128990061888798763718548789\
1084 025717537674780281005583347165047846045925077914824515331335\
1085 131286063574407181821236377907693209224423490663289916878620\
1086 725507793163931390372011875799729330162278748985052557432333\
1087 005334989519381566364065326138465761456173231416844807264090\
1088 741841972247545424908843928136253653308813487994328446248389\
1089 608261444391573619177442907290731163188581917588219420107047\
1090 265367485141413919810885909689112244064797106324295291545892\
1091 937991321479061743491490060940946128274533657682130125169586\
1092 930571899403551122506297763180795732325134340989331155893724\
1093 289358918212707392997768032299997207208451112971425779939507\
1094 837165263255764268971211819536322993221774123134726665579460\
1095 265871378186589562858761835613344584269098062275786969729830\
1096 545786485401407774313414954958161677096004701941411411592755\
1097 485864471870515173326244464631295701572087440183178339987662\
1098 926763241220698078822661709054601073523477544653542795020468\
1099 256078409306409100874886828781860529824879343987945751252081\
1100 314345990313550683792348814627862441324030155730592166581251\
1101 009922787324590431548734575328663628650380722603024383412564\
1102 651446272117561042207738413114131099731016728935023152239431\
1103 311619533848376583687509108453086730196255111695352464186678\
1104 221927564757730319825223049341618853631333478241227227268084\
1105 583396688436229936266854011427192767039363517491659523133852\
1106 472534104124441112346615696891097070121463652258681270378076\
1107 538381697594264658479637863087159293838880752928175545408262\
1108 813403793568695416998388572304528748824756265665683890518422\
1109 696169422338806137532304784682662448207928681740476188343739\
1110 117833525916386815135793034906806117413105008719197882837614\
1111 738262050320291539494104952056471606645482046176634075459021\
1112 552555959590354956262127809953013679512507451424271839221946\
1113 794056861055980558363033732905772356986051180966474116423192\
1114 194741572438649215204229781279620370445373851348786918527399\
1115 785630808242657122705381806661616271132182017797793661244078\
1116 445747547535623384548769818529655539279036503234072455810991\
1117 588075181817695975173110136482659854557506203058080551018873\
1118 203138260451109855100526720073566126209666125604482413705611\
1119 996796777927332827103568863352291499261312290355143742018042\
1120 254470707107847293593205234049774839191754781030496978091006\
1121 099559675240966730110167624903610656473267105556155633783594\
1122 089546261107653110531808279445757724399186120387548675148632\
1123 176049190701680305210224388072261974806791922636412897526952\
1124 793677946622674149577084803568051242934076450942927092705684\
1125 547042915490323112457971853658760725588190377666477106903106\
1126 693847278847646032201293023329503348730723947218797410452333\
1127 910847913892827195814551858335519518939031446093385329182820\
1128 714173657946661746005901866885589732922652604573972842197231\
1129 187365263381958925227970038358064987248233271706462687651143\
1130 350472018043321314534759819524203308490914358596886150053406\
1131 629512434788155355109100540319857813535695923273426256911552\
1132 977539394209918630668466632881929661971212772444625151371953\
1133 428875491139683919687008724010475217255347915698820960215217\
1134 257390308560235323463096946442080548018754166369706161589705\
1135 215873687166365628787796501470056870127729464714362172216802\
1136 441045276911597009443281135389729130222603185665646434661947\
1137 627628077723219376892727386120519287577405410510114936151502\
1138 752997122750262781911372625997223415283516995479265631485799\
1139 456782561734766648462849641064097181818204279498552827825384\
1140 186202065516999362573388136163077477126602169410435905014077\
1141 049808497409025369325795765272066650278004200357878990911374\
1142 982857977108488482528354406313893864211497105765030504600982\
1143 253488805474531798742143374465080240030582370086699167937651\
1144 038307909706139327119325418854546478285735654541635477790346\
1145 964782617354265050767878335230272194896680141986745074630225\
1146 893106573559558843545841186025169531604151588481389164948914\
1147 823593944287133336263680358191369540321930649824471425485137\
1148 777984823525402115151171093313613251350685343824859052220126\
1149 891551966018355920872775724807128769003243129486808733796350\
1150 497668255116485157191011858830643898323628223472099280243583\
1151 164434348347014910398004439821970508280440872759395827943270\
1152 985008769143562351938091476215083548164137333541883808870019\
1153 116234099013452929807950151652297436436006149684939775781234\
1154 660954156154478642694176038524277810483833149798681345708089\
1155 152179193979463169402340611793486272301808073267534612685593\
1156 859596787866884211031341417903391749825320454663508370385251\
1157 831778477311017089729361152161928815389818579983544490982891\
1158 734081131312309744330960666031291451740885503458543884956367\
1159 654943799264600314531815427932691107874782328654759293575803\
1160 481929361961781073958502075438499070633193799699311694287183\
1161 299423475339817655608058724723221867087563064557636112380829\
1162 514501382073257737022472866608244164310385205213523702910787\
1163 182472517125030106491031844871593141759729773907719510044049\
1164 352857426592936763727969496103940591601975078602859660478614\
1165 119405428212830134490731706220583788265344728818766885126977\
1166 588151111984290444321648931907188080336064713873288834096229\
1167 203276676119810521851726133377700616341304257822975788967472\
1168 152742255041912584197045423031298506219011800240120182445838\
1169 590696647416285334515631019799007515682004250060857020904012\
1170 215375170479800482680554499806010766109655061507421747722461\
1171 180617361402575082294678925605271083587897845390768226405648\
1172 508518103525778638618195775128516073959272990148239415346263\
1173 486966573934577450787243667063244378381883115827207605856174\
1174 876350045086885320626669331311880593775916269643646395423220\
1175 549940790476989709243027420158390806135690975149384714684219\
1176 964938182719962913931464979458639185519531490009437619838306\
1177 362365453754807654884704163490469296444427144778593725687358\
1178 437087390151990694667516279202024332494828210657618261952038\
1179 597230263799412584275851667403910657370879707181053365818502\
1180 680037431560091209982641738995652793235851569372314130107647\
1181 166085235615697257094269133100914135783178856280392139325001\
1182 352841718610484616627448189556913621837791650699820323059708\
1183 766420810133584841826718631681683381743511974264126250984214\
1184 812397119978273917903889865891718836792263377888052458189238\
1185 746074986456016681098722869419588274020181430652732817858728\
1186 473849369539367463917171317324882099804999043054467247785592\
1187 038464723442276239896066431580123756428540074945472427752568\
1188 981171400621705853374875885943072600692576914790467205905272\
1189 372594740187988081900317493185005142913607163380720069786786\
1190 782095331840893694073778325119471833528492917081008547303414\
1191 509381563617864195257751546539575461435803625993888325647883\
1192 541039192368366987400263049681218831477776345118518503709588\
1193 840859023379762456561030683928115349942393963185677123055324\
1194 771693784214924931737043793679546051454845624150270955450608\
1195 318747395755728950832754611277041359602301205138509175543313\
1196 522772786504141007552691902249572375175731740923618769197304\
1197 652898352694386665448260033458575323252814233868098279476166\
1198 764258284911434288072243178941698347365985427696983129579496\
1199 059032032841281149923518087084876885114369033227736521245740\
1200 554711771423492719899982357711910225545480424688322195336240\
1201 492253136281857837808491795993788199125205555222116581071134\
1202 476787468430539307909617442106685159519071053844987343666452\
1203 494280317720153567054364117244775141336558406098548803924509\
1204 496052261825198043140272655303625315605326569530252885854991\
1205 822289219201218313590745412010446642247111703901991591338062\
1206 693320157180618736569439969283245279430312651192668788340033\
1207 626825194260296262959884258597703584888770801961209652822982\
1208 322376122303586169861685106043820510444293432856251210395693\
1209 261264867823980172683352796141772210301725997652373804152525\
1210 037162852291403804455997331367378463632437773242905518075065\
1211 414724295857460288225400061608664961649196400079359622673770\
1212 607898395269075056596627116148289491042491764170924014885106\
1213 158235482774778418134123293974436877051995673618683751115353\
1214 808771434984204447736174758316063096245047311279841579995578\
1215 186609402864244042751443128536278453430633423118662852688374\
1216 229600894418958824842459450540826176452145829389286103522774\
1217 101195556029650753254244433565937938526828990893149766298997\
1218 738359913887178888607190765709867052470880785937935110091424\
1219 743449966353497865681753841380246075612094033617488674676296\
1220 822570077027076266879557913673839341012099558043806442348798\
1221 053951239274913334631522409564461770434875790402230022872647\
1222 568436177018658068697071731879399180374560963492726714528729\
1223 224208938589940272515747888379118461617702271694075087419634\
1224 147298076764775745707026934442908236664400557265527951453482\
1225 191684597674273691978253678690951178777239573925410438679099\
1226 374700609973920128201422381329108236575369403675960765238333\
1227 778127017096574296148321075566959285042221837159799800133563\
1228 239963969638610872680393210300180152020613051613414547163713\
1229 772512617757277955979895866367571776456268564191092477027650\
1230 135832200376440239783726540552694851717269598489288851529660\
1231 975027775639565229734596726205832668434979354541943345062977\
1232 891187146561050118118108223323735210843681128615413601091222\
1233 007912350536959777114306541514511332368936078560929788143798\
1234 814391221507522370648646767364209132147312407014953113532379\
1235 838195728491128536978285918066991040993153064356179903885952\
1236 027952713749653604502053512355449916680887234238773855581636\
1237 172479594866871765094513940103284167914110196720261110812716\
1238 776424260154507395050380575452850420730818412994731079307343\
1239 538376880280124019321040198038723558784544408584344466090982\
1240 802067326529000931562048932875469079874956595180595395347093\
1241 285140279165467965596318365749701535812384333240968283640721\
1242 344003442002691613772056762099098025739332715913970186225176\
1243 459563484134139746647940170537900275350480490468851439300771\
1244 949915194703080576611022590670399844931867609777417528903454\
1245 731922206378932141464755402629420074293816349270038351339419\
1246 146768473851353171629153912238797141905920143036064131705230\
1247 421762305232861503856799511155936565169005916711845389135580\
1248 928162511912438531204156138447775120789548666143600293412065\
1249 767167106888509172568003530668539460588248316513392652567856\
1250 224602697296203328920073354425994044956624831346979458846837\
1251 597950064151867164583749203433942592178528868981311575331848\
1252 941597492470436782387502687532649093096498315347403977436001\
1253 399982102030846763698994785054617523241463186980898394504211\
1254 430763617825306895065661536045431497903759118007934839122881\
1255 885863091769469883539876840543521295706315919855784493235603\
1256 866268925981702690270202829595794350800918257913991744455922\
1257 6833433740466716699302196502685546875e-4951L;
1258 static const long double ld2c
=
1259 5.4677992978237119037926089004291297245985762235403450155814\
1260 707305425575329500966052143410629387408077958710210208052966\
1261 529504784489330482549602621133847135082257338717668975178538\
1262 378957084503396349323438489751160934104796903302909028868611\
1263 999312592165232778075745690821530731336739429587895774023213\
1264 939331012985331912661021188896306095323395084578542200319963\
1265 179359407180003251440084380484161504585462684082946932782829\
1266 488183829817567452314437076943950532707791252404699268678810\
1267 198502871250235796855577909830559749628817599194837522029036\
1268 891995648803056846354520653635957919882905363521007017169741\
1269 463296044392266269433408052686419017699718627761948763856040\
1270 592690841721239300491445991666051031755802326720329666454066\
1271 568630314348735511753639418257984253319063825247065727664852\
1272 328745422305642626091617823968872438962470092440688372515677\
1273 832232712866924800106797113478024083516199991991274936894113\
1274 006233377518471389394984262004503058455485659100090665241525\
1275 454803628182902241401701783637353179296850056973639305945938\
1276 813428953287892593620291195986011128990061888798763718548789\
1277 025717537674780281005583347165047846045925077914824515331335\
1278 131286063574407181821236377907693209224423490663289916878620\
1279 725507793163931390372011875799729330162278748985052557432333\
1280 005334989519381566364065326138465761456173231416844807264090\
1281 741841972247545424908843928136253653308813487994328446248389\
1282 608261444391573619177442907290731163188581917588219420107047\
1283 265367485141413919810885909689112244064797106324295291545892\
1284 937991321479061743491490060940946128274533657682130125169586\
1285 930571899403551122506297763180795732325134340989331155893724\
1286 289358918212707392997768032299997207208451112971425779939507\
1287 837165263255764268971211819536322993221774123134726665579460\
1288 265871378186589562858761835613344584269098062275786969729830\
1289 545786485401407774313414954958161677096004701941411411592755\
1290 485864471870515173326244464631295701572087440183178339987662\
1291 926763241220698078822661709054601073523477544653542795020468\
1292 256078409306409100874886828781860529824879343987945751252081\
1293 314345990313550683792348814627862441324030155730592166581251\
1294 009922787324590431548734575328663628650380722603024383412564\
1295 651446272117561042207738413114131099731016728935023152239431\
1296 311619533848376583687509108453086730196255111695352464186678\
1297 221927564757730319825223049341618853631333478241227227268084\
1298 583396688436229936266854011427192767039363517491659523133852\
1299 472534104124441112346615696891097070121463652258681270378076\
1300 538381697594264658479637863087159293838880752928175545408262\
1301 813403793568695416998388572304528748824756265665683890518422\
1302 696169422338806137532304784682662448207928681740476188343739\
1303 117833525916386815135793034906806117413105008719197882837614\
1304 738262050320291539494104952056471606645482046176634075459021\
1305 552555959590354956262127809953013679512507451424271839221946\
1306 794056861055980558363033732905772356986051180966474116423192\
1307 194741572438649215204229781279620370445373851348786918527399\
1308 785630808242657122705381806661616271132182017797793661244078\
1309 445747547535623384548769818529655539279036503234072455810991\
1310 588075181817695975173110136482659854557506203058080551018873\
1311 203138260451109855100526720073566126209666125604482413705611\
1312 996796777927332827103568863352291499261312290355143742018042\
1313 254470707107847293593205234049774839191754781030496978091006\
1314 099559675240966730110167624903610656473267105556155633783594\
1315 089546261107653110531808279445757724399186120387548675148632\
1316 176049190701680305210224388072261974806791922636412897526952\
1317 793677946622674149577084803568051242934076450942927092705684\
1318 547042915490323112457971853658760725588190377666477106903106\
1319 693847278847646032201293023329503348730723947218797410452333\
1320 910847913892827195814551858335519518939031446093385329182820\
1321 714173657946661746005901866885589732922652604573972842197231\
1322 187365263381958925227970038358064987248233271706462687651143\
1323 350472018043321314534759819524203308490914358596886150053406\
1324 629512434788155355109100540319857813535695923273426256911552\
1325 977539394209918630668466632881929661971212772444625151371953\
1326 428875491139683919687008724010475217255347915698820960215217\
1327 257390308560235323463096946442080548018754166369706161589705\
1328 215873687166365628787796501470056870127729464714362172216802\
1329 441045276911597009443281135389729130222603185665646434661947\
1330 627628077723219376892727386120519287577405410510114936151502\
1331 752997122750262781911372625997223415283516995479265631485799\
1332 456782561734766648462849641064097181818204279498552827825384\
1333 186202065516999362573388136163077477126602169410435905014077\
1334 049808497409025369325795765272066650278004200357878990911374\
1335 982857977108488482528354406313893864211497105765030504600982\
1336 253488805474531798742143374465080240030582370086699167937651\
1337 038307909706139327119325418854546478285735654541635477790346\
1338 964782617354265050767878335230272194896680141986745074630225\
1339 893106573559558843545841186025169531604151588481389164948914\
1340 823593944287133336263680358191369540321930649824471425485137\
1341 777984823525402115151171093313613251350685343824859052220126\
1342 891551966018355920872775724807128769003243129486808733796350\
1343 497668255116485157191011858830643898323628223472099280243583\
1344 164434348347014910398004439821970508280440872759395827943270\
1345 985008769143562351938091476215083548164137333541883808870019\
1346 116234099013452929807950151652297436436006149684939775781234\
1347 660954156154478642694176038524277810483833149798681345708089\
1348 152179193979463169402340611793486272301808073267534612685593\
1349 859596787866884211031341417903391749825320454663508370385251\
1350 831778477311017089729361152161928815389818579983544490982891\
1351 734081131312309744330960666031291451740885503458543884956367\
1352 654943799264600314531815427932691107874782328654759293575803\
1353 481929361961781073958502075438499070633193799699311694287183\
1354 299423475339817655608058724723221867087563064557636112380829\
1355 514501382073257737022472866608244164310385205213523702910787\
1356 182472517125030106491031844871593141759729773907719510044049\
1357 352857426592936763727969496103940591601975078602859660478614\
1358 119405428212830134490731706220583788265344728818766885126977\
1359 588151111984290444321648931907188080336064713873288834096229\
1360 203276676119810521851726133377700616341304257822975788967472\
1361 152742255041912584197045423031298506219011800240120182445838\
1362 590696647416285334515631019799007515682004250060857020904012\
1363 215375170479800482680554499806010766109655061507421747722461\
1364 180617361402575082294678925605271083587897845390768226405648\
1365 508518103525778638618195775128516073959272990148239415346263\
1366 486966573934577450787243667063244378381883115827207605856174\
1367 876350045086885320626669331311880593775916269643646395423220\
1368 549940790476989709243027420158390806135690975149384714684219\
1369 964938182719962913931464979458639185519531490009437619838306\
1370 362365453754807654884704163490469296444427144778593725687358\
1371 437087390151990694667516279202024332494828210657618261952038\
1372 597230263799412584275851667403910657370879707181053365818502\
1373 680037431560091209982641738995652793235851569372314130107647\
1374 166085235615697257094269133100914135783178856280392139325001\
1375 352841718610484616627448189556913621837791650699820323059708\
1376 766420810133584841826718631681683381743511974264126250984214\
1377 812397119978273917903889865891718836792263377888052458189238\
1378 746074986456016681098722869419588274020181430652732817858728\
1379 473849369539367463917171317324882099804999043054467247785592\
1380 038464723442276239896066431580123756428540074945472427752568\
1381 981171400621705853374875885943072600692576914790467205905272\
1382 372594740187988081900317493185005142913607163380720069786786\
1383 782095331840893694073778325119471833528492917081008547303414\
1384 509381563617864195257751546539575461435803625993888325647883\
1385 541039192368366987400263049681218831477776345118518503709588\
1386 840859023379762456561030683928115349942393963185677123055324\
1387 771693784214924931737043793679546051454845624150270955450608\
1388 318747395755728950832754611277041359602301205138509175543313\
1389 522772786504141007552691902249572375175731740923618769197304\
1390 652898352694386665448260033458575323252814233868098279476166\
1391 764258284911434288072243178941698347365985427696983129579496\
1392 059032032841281149923518087084876885114369033227736521245740\
1393 554711771423492719899982357711910225545480424688322195336240\
1394 492253136281857837808491795993788199125205555222116581071134\
1395 476787468430539307909617442106685159519071053844987343666452\
1396 494280317720153567054364117244775141336558406098548803924509\
1397 496052261825198043140272655303625315605326569530252885854991\
1398 822289219201218313590745412010446642247111703901991591338062\
1399 693320157180618736569439969283245279430312651192668788340033\
1400 626825194260296262959884258597703584888770801961209652822982\
1401 322376122303586169861685106043820510444293432856251210395693\
1402 261264867823980172683352796141772210301725997652373804152525\
1403 037162852291403804455997331367378463632437773242905518075065\
1404 414724295857460288225400061608664961649196400079359622673770\
1405 607898395269075056596627116148289491042491764170924014885106\
1406 158235482774778418134123293974436877051995673618683751115353\
1407 808771434984204447736174758316063096245047311279841579995578\
1408 186609402864244042751443128536278453430633423118662852688374\
1409 229600894418958824842459450540826176452145829389286103522774\
1410 101195556029650753254244433565937938526828990893149766298997\
1411 738359913887178888607190765709867052470880785937935110091424\
1412 743449966353497865681753841380246075612094033617488674676296\
1413 822570077027076266879557913673839341012099558043806442348798\
1414 053951239274913334631522409564461770434875790402230022872647\
1415 568436177018658068697071731879399180374560963492726714528729\
1416 224208938589940272515747888379118461617702271694075087419634\
1417 147298076764775745707026934442908236664400557265527951453482\
1418 191684597674273691978253678690951178777239573925410438679099\
1419 374700609973920128201422381329108236575369403675960765238333\
1420 778127017096574296148321075566959285042221837159799800133563\
1421 239963969638610872680393210300180152020613051613414547163713\
1422 772512617757277955979895866367571776456268564191092477027650\
1423 135832200376440239783726540552694851717269598489288851529660\
1424 975027775639565229734596726205832668434979354541943345062977\
1425 891187146561050118118108223323735210843681128615413601091222\
1426 007912350536959777114306541514511332368936078560929788143798\
1427 814391221507522370648646767364209132147312407014953113532379\
1428 838195728491128536978285918066991040993153064356179903885952\
1429 027952713749653604502053512355449916680887234238773855581636\
1430 172479594866871765094513940103284167914110196720261110812716\
1431 776424260154507395050380575452850420730818412994731079307343\
1432 538376880280124019321040198038723558784544408584344466090982\
1433 802067326529000931562048932875469079874956595180595395347093\
1434 285140279165467965596318365749701535812384333240968283640721\
1435 344003442002691613772056762099098025739332715913970186225176\
1436 459563484134139746647940170537900275350480490468851439300771\
1437 949915194703080576611022590670399844931867609777417528903454\
1438 731922206378932141464755402629420074293816349270038351339419\
1439 146768473851353171629153912238797141905920143036064131705230\
1440 421762305232861503856799511155936565169005916711845389135580\
1441 928162511912438531204156138447775120789548666143600293412065\
1442 767167106888509172568003530668539460588248316513392652567856\
1443 224602697296203328920073354425994044956624831346979458846837\
1444 597950064151867164583749203433942592178528868981311575331848\
1445 941597492470436782387502687532649093096498315347403977436001\
1446 399982102030846763698994785054617523241463186980898394504211\
1447 430763617825306895065661536045431497903759118007934839122881\
1448 885863091769469883539876840543521295706315919855784493235603\
1449 866268925981702690270202829595794350800918257913991744455922\
1450 6833433740466716699302196502685546875001e-4951L;
1451 /* 0x1.0000000000000001p16383 */
1452 static const long double ld3ae
= 0x1p
16383L, ld3be
= 0x1p
16383L, ld3ce
= 0x1.0000000000000002p16383L
;
1453 static const long double ld3a
=
1454 5.9486574767861588257512740011252202817891302594919813725251\
1455 295428739285541899832559628345030434759848834258858109152060\
1456 168394580447354320917546191141469316674407503401251826592118\
1457 529247805068466318759038608659253988075214874609536526621357\
1458 456531393890166762179915866732524251539065872543957371571521\
1459 983821811625262362379785274802094595537134203491628334800642\
1460 100552410980148340419844099304716014319891796892117978584065\
1461 642215994189779833796388294931075153217985342401232585488548\
1462 183499573356819649604353341808627018653300000165159821533158\
1463 398534762310007133107769480816106094590754928301890268526601\
1464 948012303315011492834812113743989351274355589970363438128551\
1465 573643438403526566620300559126131289478114044934210031633528\
1466 263569989916613277150372804081100885766846923338387335735275\
1467 815690693627425316500993091757924061275520326543377826484801\
1468 260850814410014200240706874882235908793464063722267631785502\
1469 588978890438298369667014685160756795261293064179236782450102\
1470 879817506411379585551974343148401888001113058696688771238532\
1471 123329163319380775763389985796856252232367435778523577763581\
1472 076318820356483011816956309162306010784749642144593052844981\
1473 144455778303480881727480293033710826466852650686573284449164\
1474 971550815761322623554550767170481569400661823142075309755585\
1475 825399262942161733431916879499819498306470556518202895225167\
1476 570891857833504708712937447726161123901897152190727519098753\
1477 173091256107155059564163182449945325514965354563242034921715\
1478 085079669416064946957897843700525314730377964740286745952320\
1479 848539618361767466769711132391357232984948881905511016501295\
1480 373458116601070538750219227472880922074079367616789330713051\
1481 392796054620611196686398104309732110578180612371988986941283\
1482 463409571752839755060102940634838880149410521082372514146698\
1483 949690555298417297141754693386954049385392552489950059242099\
1484 158790234260937921119976211248531759522503364724271154732450\
1485 580204158756703065275680503502538215181617861403909609765438\
1486 459404741896379126766756324776550060890489522385655907004761\
1487 103760380176704738464932582597767398552360992261748200224552\
1488 499221197984163362555822765637968034280918669504609870586242\
1489 062170049756721980421608552698712778507151233315121277695507\
1490 694932304894125095195395002291537339548463471343544834535084\
1491 385597125111888342671654244935921073610595930775193595237994\
1492 484405470453247603596164707279142831292696020597352513459682\
1493 982542490819269161229107183625537754125393689567083050306972\
1494 299472451409351528024124972676859164822379702549840869992122\
1495 109088558738008051503238314435613116752657081607929379237268\
1496 685258548361696557803717952234859306922044575896046034219495\
1497 078937310258307531674502149231702180717812559299741279722940\
1498 331553164095430990867607708187092707603492795672693661579813\
1499 722297206006600340954221573260854019342039503980256096723323\
1500 974619210941227998945120494044519820953637210732374225869479\
1501 681431453077746347270062554307578221973966755682727685671115\
1502 104598487346465589917255152859638133529840253249441154093766\
1503 468296435228729803156904942774237478111621919125582394448948\
1504 295406406844691902789160843785892192212760482854142616066966\
1505 061436483840059374641455624686877579416182709686546132337333\
1506 180030729666859995573465620394353524944034503194887839608451\
1507 069029644904642077575045157730600577875158390703330602738631\
1508 860629283284285902868412268522486164537842820453011183015531\
1509 669082023505889165928251243784395957824980999247118276540195\
1510 068956031183236585108415603897481193085040746824934727777986\
1511 761703484626902903260925660927239810711484175954901422619731\
1512 922057229492660554293614771979793133433085936212830723862399\
1513 334585740422370252249982159238980361966177481883090934546250\
1514 903836442278836769393445168381535656636696931116641217099763\
1515 249205106142470169654056239769609880390474141835446455366216\
1516 163044493526155530766380018725181852858797332884069215206429\
1517 253933800732703242020102754246055713369281324885855415528125\
1518 659581759080256206862639693790603663547070031814664699862085\
1519 124026740519096394950750536940374610036575208929959836461615\
1520 919280191863569472772191938255564055565023733812663112274784\
1521 824733213440763947293874467915896768018331324730250697015099\
1522 463062533087218087488410166157459583569488345783974179340987\
1523 151815108212218686575226398710276498737521494877861721916239\
1524 286780194943271811625644415312213945242110591353818534254974\
1525 082884162962499579444882831630967263044313008877192427542802\
1526 154833385005287431176015973444837288763406349559772586733139\
1527 508290944276618724455216038372331277739377332938820061159422\
1528 131545699737995079186343848189545551446309662717473667598998\
1529 332988069951307480469935653061211574846012803370905284012473\
1530 025318540210297839541696998136885534223864988557670674501375\
1531 244470147903967779423817060038384764935662497442963759653206\
1532 786432859777470896394181997456033131032688720696203667198626\
1533 404895099030068466008555612541561023366202324622483939422567\
1534 021914882845352467305687811236417567525816955182834161603932\
1535 993065869465459807593704095390354125514253872107415823725124\
1536 7263969181695999e+4931L;
1537 static const long double ld3b
=
1538 5.9486574767861588257512740011252202817891302594919813725251\
1539 295428739285541899832559628345030434759848834258858109152060\
1540 168394580447354320917546191141469316674407503401251826592118\
1541 529247805068466318759038608659253988075214874609536526621357\
1542 456531393890166762179915866732524251539065872543957371571521\
1543 983821811625262362379785274802094595537134203491628334800642\
1544 100552410980148340419844099304716014319891796892117978584065\
1545 642215994189779833796388294931075153217985342401232585488548\
1546 183499573356819649604353341808627018653300000165159821533158\
1547 398534762310007133107769480816106094590754928301890268526601\
1548 948012303315011492834812113743989351274355589970363438128551\
1549 573643438403526566620300559126131289478114044934210031633528\
1550 263569989916613277150372804081100885766846923338387335735275\
1551 815690693627425316500993091757924061275520326543377826484801\
1552 260850814410014200240706874882235908793464063722267631785502\
1553 588978890438298369667014685160756795261293064179236782450102\
1554 879817506411379585551974343148401888001113058696688771238532\
1555 123329163319380775763389985796856252232367435778523577763581\
1556 076318820356483011816956309162306010784749642144593052844981\
1557 144455778303480881727480293033710826466852650686573284449164\
1558 971550815761322623554550767170481569400661823142075309755585\
1559 825399262942161733431916879499819498306470556518202895225167\
1560 570891857833504708712937447726161123901897152190727519098753\
1561 173091256107155059564163182449945325514965354563242034921715\
1562 085079669416064946957897843700525314730377964740286745952320\
1563 848539618361767466769711132391357232984948881905511016501295\
1564 373458116601070538750219227472880922074079367616789330713051\
1565 392796054620611196686398104309732110578180612371988986941283\
1566 463409571752839755060102940634838880149410521082372514146698\
1567 949690555298417297141754693386954049385392552489950059242099\
1568 158790234260937921119976211248531759522503364724271154732450\
1569 580204158756703065275680503502538215181617861403909609765438\
1570 459404741896379126766756324776550060890489522385655907004761\
1571 103760380176704738464932582597767398552360992261748200224552\
1572 499221197984163362555822765637968034280918669504609870586242\
1573 062170049756721980421608552698712778507151233315121277695507\
1574 694932304894125095195395002291537339548463471343544834535084\
1575 385597125111888342671654244935921073610595930775193595237994\
1576 484405470453247603596164707279142831292696020597352513459682\
1577 982542490819269161229107183625537754125393689567083050306972\
1578 299472451409351528024124972676859164822379702549840869992122\
1579 109088558738008051503238314435613116752657081607929379237268\
1580 685258548361696557803717952234859306922044575896046034219495\
1581 078937310258307531674502149231702180717812559299741279722940\
1582 331553164095430990867607708187092707603492795672693661579813\
1583 722297206006600340954221573260854019342039503980256096723323\
1584 974619210941227998945120494044519820953637210732374225869479\
1585 681431453077746347270062554307578221973966755682727685671115\
1586 104598487346465589917255152859638133529840253249441154093766\
1587 468296435228729803156904942774237478111621919125582394448948\
1588 295406406844691902789160843785892192212760482854142616066966\
1589 061436483840059374641455624686877579416182709686546132337333\
1590 180030729666859995573465620394353524944034503194887839608451\
1591 069029644904642077575045157730600577875158390703330602738631\
1592 860629283284285902868412268522486164537842820453011183015531\
1593 669082023505889165928251243784395957824980999247118276540195\
1594 068956031183236585108415603897481193085040746824934727777986\
1595 761703484626902903260925660927239810711484175954901422619731\
1596 922057229492660554293614771979793133433085936212830723862399\
1597 334585740422370252249982159238980361966177481883090934546250\
1598 903836442278836769393445168381535656636696931116641217099763\
1599 249205106142470169654056239769609880390474141835446455366216\
1600 163044493526155530766380018725181852858797332884069215206429\
1601 253933800732703242020102754246055713369281324885855415528125\
1602 659581759080256206862639693790603663547070031814664699862085\
1603 124026740519096394950750536940374610036575208929959836461615\
1604 919280191863569472772191938255564055565023733812663112274784\
1605 824733213440763947293874467915896768018331324730250697015099\
1606 463062533087218087488410166157459583569488345783974179340987\
1607 151815108212218686575226398710276498737521494877861721916239\
1608 286780194943271811625644415312213945242110591353818534254974\
1609 082884162962499579444882831630967263044313008877192427542802\
1610 154833385005287431176015973444837288763406349559772586733139\
1611 508290944276618724455216038372331277739377332938820061159422\
1612 131545699737995079186343848189545551446309662717473667598998\
1613 332988069951307480469935653061211574846012803370905284012473\
1614 025318540210297839541696998136885534223864988557670674501375\
1615 244470147903967779423817060038384764935662497442963759653206\
1616 786432859777470896394181997456033131032688720696203667198626\
1617 404895099030068466008555612541561023366202324622483939422567\
1618 021914882845352467305687811236417567525816955182834161603932\
1619 993065869465459807593704095390354125514253872107415823725124\
1620 7263969181696e+4931L;
1621 static const long double ld3c
=
1622 5.9486574767861588257512740011252202817891302594919813725251\
1623 295428739285541899832559628345030434759848834258858109152060\
1624 168394580447354320917546191141469316674407503401251826592118\
1625 529247805068466318759038608659253988075214874609536526621357\
1626 456531393890166762179915866732524251539065872543957371571521\
1627 983821811625262362379785274802094595537134203491628334800642\
1628 100552410980148340419844099304716014319891796892117978584065\
1629 642215994189779833796388294931075153217985342401232585488548\
1630 183499573356819649604353341808627018653300000165159821533158\
1631 398534762310007133107769480816106094590754928301890268526601\
1632 948012303315011492834812113743989351274355589970363438128551\
1633 573643438403526566620300559126131289478114044934210031633528\
1634 263569989916613277150372804081100885766846923338387335735275\
1635 815690693627425316500993091757924061275520326543377826484801\
1636 260850814410014200240706874882235908793464063722267631785502\
1637 588978890438298369667014685160756795261293064179236782450102\
1638 879817506411379585551974343148401888001113058696688771238532\
1639 123329163319380775763389985796856252232367435778523577763581\
1640 076318820356483011816956309162306010784749642144593052844981\
1641 144455778303480881727480293033710826466852650686573284449164\
1642 971550815761322623554550767170481569400661823142075309755585\
1643 825399262942161733431916879499819498306470556518202895225167\
1644 570891857833504708712937447726161123901897152190727519098753\
1645 173091256107155059564163182449945325514965354563242034921715\
1646 085079669416064946957897843700525314730377964740286745952320\
1647 848539618361767466769711132391357232984948881905511016501295\
1648 373458116601070538750219227472880922074079367616789330713051\
1649 392796054620611196686398104309732110578180612371988986941283\
1650 463409571752839755060102940634838880149410521082372514146698\
1651 949690555298417297141754693386954049385392552489950059242099\
1652 158790234260937921119976211248531759522503364724271154732450\
1653 580204158756703065275680503502538215181617861403909609765438\
1654 459404741896379126766756324776550060890489522385655907004761\
1655 103760380176704738464932582597767398552360992261748200224552\
1656 499221197984163362555822765637968034280918669504609870586242\
1657 062170049756721980421608552698712778507151233315121277695507\
1658 694932304894125095195395002291537339548463471343544834535084\
1659 385597125111888342671654244935921073610595930775193595237994\
1660 484405470453247603596164707279142831292696020597352513459682\
1661 982542490819269161229107183625537754125393689567083050306972\
1662 299472451409351528024124972676859164822379702549840869992122\
1663 109088558738008051503238314435613116752657081607929379237268\
1664 685258548361696557803717952234859306922044575896046034219495\
1665 078937310258307531674502149231702180717812559299741279722940\
1666 331553164095430990867607708187092707603492795672693661579813\
1667 722297206006600340954221573260854019342039503980256096723323\
1668 974619210941227998945120494044519820953637210732374225869479\
1669 681431453077746347270062554307578221973966755682727685671115\
1670 104598487346465589917255152859638133529840253249441154093766\
1671 468296435228729803156904942774237478111621919125582394448948\
1672 295406406844691902789160843785892192212760482854142616066966\
1673 061436483840059374641455624686877579416182709686546132337333\
1674 180030729666859995573465620394353524944034503194887839608451\
1675 069029644904642077575045157730600577875158390703330602738631\
1676 860629283284285902868412268522486164537842820453011183015531\
1677 669082023505889165928251243784395957824980999247118276540195\
1678 068956031183236585108415603897481193085040746824934727777986\
1679 761703484626902903260925660927239810711484175954901422619731\
1680 922057229492660554293614771979793133433085936212830723862399\
1681 334585740422370252249982159238980361966177481883090934546250\
1682 903836442278836769393445168381535656636696931116641217099763\
1683 249205106142470169654056239769609880390474141835446455366216\
1684 163044493526155530766380018725181852858797332884069215206429\
1685 253933800732703242020102754246055713369281324885855415528125\
1686 659581759080256206862639693790603663547070031814664699862085\
1687 124026740519096394950750536940374610036575208929959836461615\
1688 919280191863569472772191938255564055565023733812663112274784\
1689 824733213440763947293874467915896768018331324730250697015099\
1690 463062533087218087488410166157459583569488345783974179340987\
1691 151815108212218686575226398710276498737521494877861721916239\
1692 286780194943271811625644415312213945242110591353818534254974\
1693 082884162962499579444882831630967263044313008877192427542802\
1694 154833385005287431176015973444837288763406349559772586733139\
1695 508290944276618724455216038372331277739377332938820061159422\
1696 131545699737995079186343848189545551446309662717473667598998\
1697 332988069951307480469935653061211574846012803370905284012473\
1698 025318540210297839541696998136885534223864988557670674501375\
1699 244470147903967779423817060038384764935662497442963759653206\
1700 786432859777470896394181997456033131032688720696203667198626\
1701 404895099030068466008555612541561023366202324622483939422567\
1702 021914882845352467305687811236417567525816955182834161603932\
1703 993065869465459807593704095390354125514253872107415823725124\
1704 7263969181696001e+4931L;
1707 #if LDBL_MANT_DIG == 113 \
1708 && LDBL_MIN_EXP == -16381 \
1709 && LDBL_MAX_EXP == 16384
1712 static const long double ld1ae
= 0, ld1be
= 0, ld1ce
= 0x1p
-16494L;
1713 static const long double ld1a
=
1714 3.2375875597190125554622194791138232762497846690173405048449\
1715 421945985197700620596855088357456383249701279390707384240598\
1716 382936099431912710233425550359863089915213963553756674672083\
1717 673128192358701197242632527769951957277781260855740340354110\
1718 173441284912381364143945515141786687806740155311932822963199\
1719 131134959539539338316310328556057915323285980341541664226172\
1720 265348802632447238304822896568757017013159021750199744350376\
1721 278243566840330589397015778833566517337174685312047058426075\
1722 688036665697114219175258344917835835984013214761767520398571\
1723 735519302688914468501077605843338555214753050109407568139932\
1724 147308502166696009676987494125921676927574464221699654264839\
1725 192243410627511520570610765229732327315423820550872393685221\
1726 676561948307418196052769717057382723931306989375320957256133\
1727 838073129463951849807075348034900035402513943244599879584009\
1728 391110011261908615236154859382854977144106096407982738165117\
1729 693915685918231984764157652755343417097983676870433731452629\
1730 339981084526616826599425863049784138127555181662391766144738\
1731 159400253422795753041594932607700680306368857466952063923782\
1732 760519487592638820793893796669403574411398166619131986561877\
1733 034635197232626532239192571857518274939275861531537920777299\
1734 133535479548088762634002006634954143608168633852204577195463\
1735 389533233992867620995583241321034602255800668175356808869060\
1736 608582640890741203603916133682748118680676374951545690715916\
1737 241859799379894025137504643469040366684778763795442214328000\
1738 375999444991619403217748350277527106812175542863660436614910\
1739 135938862296156144947361864759321605496309393905421651264941\
1740 669606814994816518612155298709843817262034769175075602668866\
1741 926449523554218142013501373514352370369126244144449924971423\
1742 038024236058971106053649565799145071085840022305247663313482\
1743 714565918140785997808209749619683146844964283106915422726638\
1744 184861327711776708749278315100024436584176080783836115268999\
1745 055336294569042349971163039294272620322160728879610722678506\
1746 182344928526064885227397447578450046944618127903428943538029\
1747 386719288345854473283987116842451647036255801966780244103035\
1748 425445345127067921349083698736056197567752071915587544133815\
1749 717564310032485290205726480489464589999677885266171263493459\
1750 668963623768410922688414177814149693150024191921819721215688\
1751 114324591287371281400636455584825253000890602388603923710921\
1752 026880979879158388608823700222683123228822356907857261909150\
1753 626993825760416437415551396973489279578569909699853422995997\
1754 974315036153120383930698087773157253674975950409660938084071\
1755 173163693891122166282318691732176374528554627905530306369204\
1756 877964658806333996327938827344733821685425961846791581492287\
1757 250044047142934607523718654369478552373072400018635730811749\
1758 291666457582760812726851561001954207941547404866373158231367\
1759 986951247388733285659455982411993350593989550494594498447410\
1760 984783303191128659803467713819821511544998464785455306500918\
1761 241648925913966507036336000231915215026183799886938007038845\
1762 551916478649593272604688927931953165785101738164060543643192\
1763 949066412847647883846835866623820426428526541564774787007791\
1764 235843699657232847114093617412355486871810526396392792853731\
1765 390841657984518997639795008374280777823099107035223998600103\
1766 103211166230289241182380237703814248941627178152962100972452\
1767 217697144954497443279450919433943252592977710901289696002698\
1768 225209041938801190947812141758873162203113090284565687499100\
1769 109623665868340184032428667217835198069330185880779776269137\
1770 742366802202585247113480377505916462865316253065105837519292\
1771 805411191872195967066157363040364443666632564266439033866945\
1772 366496486863801221986778957510023272290593640187551645170603\
1773 215150911733580059874983597994671388176488814794186236946834\
1774 548816837468411497151813344980969677026131105901402313456769\
1775 561412278508799050185582199844418197980544632067644131002512\
1776 557755358307705356209461595354064971347590431926479961905129\
1777 785864961996560707071051177738535042777950247546470241655891\
1778 294428226271478689174637951663865529219133988782700199051475\
1779 108495188941141025360733690471601309904116260484264378352956\
1780 830972782977747351810451586166745640802378131466232692150196\
1781 132319386267589275314909450293562079332893638471814389025392\
1782 970579695249613486078445695214422379148991006996109216699215\
1783 721671648754881325271879493185438097033881789311707997697928\
1784 860866812849648616086569281093053695399558469641977866770538\
1785 476039621947215238679930485285585513808236992918733520331110\
1786 962448142457896209307561142289713638388281085340301520317159\
1787 297224995464365477734040179470355969363384621039467975256670\
1788 339354334892926205316491997244008324897517881293654265688813\
1789 283579663372924392043825371743576754041055802440187836850412\
1790 247984570221893156921757872572872036331343007592090605703195\
1791 088864753777199111760713027328198781654685927174063882187275\
1792 850263521274368447629947228263907797373221137688424821608129\
1793 731003236738630502344377228987961455961818623205503012858619\
1794 800521948637807438081069469400793496307826769301971342062597\
1795 391253779410607511754278887744936774785938056823221738917303\
1796 119592848951788560393540150358649310736020595310015728915288\
1797 289821678102453433273888879288862086153270028346900686360943\
1798 250522514297816412678213672667152836436597491522644579383191\
1799 851483036048273636234050603745735057899230038434384361744893\
1800 838050985090837220507663282503497932038372021626246900935334\
1801 781144388106031405650705176699646299475436084049881780196520\
1802 881623075256119318210664937469946410480660118598143375898298\
1803 965497205621170906772915413181530577151676241283182977713765\
1804 317889730886996471681592298058774155948285325398399674640645\
1805 566475947058303746531133735308766583802401453804232106737787\
1806 768035926272312574958173945816077962772826443125107145322971\
1807 087220172175473177449006473180221085709470643042801004189714\
1808 505520073568915195232936144169440163547568663500508335014169\
1809 425050712038101167190534305435310279534374364467455668392421\
1810 298604104431988622194699721632249712583483143417550152131186\
1811 288827131347662976240916448058011869761525369135147129192405\
1812 037216807405860168320999468074663117771890506566769628495813\
1813 837909047220874786467663205170561835819702362482274133227483\
1814 041342457179876653773960112367066273208176545656826800069574\
1815 547599816180234764485446735080683694920665668954370505715843\
1816 455110709594838989387382250502925336743830916124954071268053\
1817 817964873658921319164268375226716232666274830656557657055342\
1818 393552148933959057023293404027940528842591460490646295820755\
1819 765633076707491896621769767253619370462005760078938144396953\
1820 018925287611875441613896820035092167912718365454954166761481\
1821 511451950826683236776211829914518353242818636196417736206010\
1822 145109509967467266157037719712666871515644277723594273405669\
1823 093518586548079997818085130346801040781966074621669280188633\
1824 856299289656492439545033914935979634179552686396067914528336\
1825 924678729357419403624798426886422277256625046946795576781709\
1826 298737741510378578072199383561520569978396254537274419476511\
1827 983161908266152660163477408756159700314280122283281906103567\
1828 067156627222418787671312246698375736071215395722993294041012\
1829 744631560602983489316782773611740570974847045870362276861106\
1830 774130949410119612624380274679529647271294627526939490197641\
1831 645383447755544661714281218489998189691140343327976729279891\
1832 077101372792811842951182338559423852563331641533781432796742\
1833 873181364582071661749961126386895359760476172215209100274274\
1834 851619657020388051618654944574445941780637669570374280535432\
1835 399157923698778110534174856844986671232161320063786308144771\
1836 068130888985636449091787794632959555876880672773686838364706\
1837 122084832995722603440165161942472322987408003421165899848443\
1838 566885769845535074102932500939450142098799833145629484519298\
1839 622410092757836842296697186410137365818568152771850732591405\
1840 340248509247875448717161746544246407280913725135059228268131\
1841 453903691495906528862410006254958805237716723952273129715780\
1842 425223305517882562616830806755498203755676925741529569939445\
1843 043490046171854709456730491532189688306135861932534903184518\
1844 717706426178028900836080044604143054210332610482947502104703\
1845 032028463320549525316174330585387581543470878545616097381416\
1846 151451037487775797335749896735101048367502483255117772375025\
1847 269956476872153642623856062175536913321594213515989059505375\
1848 135183515207096576145781316398544325320022366962008554087665\
1849 201050763789833457082359181807492731245904330245198691471329\
1850 319324627030678762142685799400660305214140453863665517807185\
1851 105354694177602424937823924511789133225030926924236498557565\
1852 212794565582753399214908928688568628950225640472058381324292\
1853 866007645368390366981937596341868992912741319342960598330486\
1854 905946276235953206760977215407164729909506118583728562718724\
1855 235732515062300426080741679038098122641980345051854359908213\
1856 563779664847422505775922437272989231878912994048540484468227\
1857 199282393172540734295329890896755037903724644870572648941076\
1858 132423009124870700536763793881894969000042397318202298868940\
1859 530196108237639578098191879486398269734335286831689173606327\
1860 500405178476864790935386838169242131756729797688220656276969\
1861 434749140204830563840068728357383111109865861495106613619153\
1862 421725274090787422508800568671498311491210197298472420373359\
1863 044400631309819996507004167876832936101195902219429743174557\
1864 163362274547892397934880322990633165889175059124060202200452\
1865 648684577182821651588921716304707095995039972827781680978274\
1866 973838841958209215836456212939412000456040621743349981715350\
1867 305133662772937143899882197561295808685181679238411733642697\
1868 748892466944352640514849114619882270112386610376024527101889\
1869 119004382703622803911212700216792471528793241950356942780714\
1870 774957204475130171711488773121937363663487116301055073658645\
1871 980695862570269762957141239436916216723776945522480189876803\
1872 386123827956059851911061129713987960026363403936931196519733\
1873 447116468545744829997003979525368783485129837821983305137448\
1874 031689360764270759437872004895754351479890333865299565515706\
1875 690471030702230767978923298480584997256328135245813726407464\
1876 159230169328539541524724878662873185450510653764301207480799\
1877 488602832618557388369552461881286225098286358672257087829660\
1878 174231705350465091313887538950130611513878400895128618426154\
1879 417299623157313010877679890009181366178705821415173309356192\
1880 686429159835537275875876767919535369607142366878476025895389\
1881 279625854409611312402187942369446302119309705461187450803468\
1882 606366203101933821675974655441744883993796837164178911391575\
1883 751463591650231265941242686108002052587760190005508737394014\
1884 453031299745602214380618917954427803281262300931789525045703\
1885 809571995929933387196864877982754748535701000330924817431298\
1886 365273697561943437891318220691072831562717726798635382168915\
1887 187137325209768346284183473712613689334546294053718697897526\
1888 843398053681374508250012035211936425982389543291022583173280\
1889 985811169783438836113209408147936547458073361625570571955232\
1890 746103236016857123149307991441916732438322836596693687161268\
1891 151183603534413030099360835441935243365729307681545065674775\
1892 655582111435085683962037818795920337874290127531069511296530\
1893 746308404963763022896682861683252995925040540038039172626001\
1894 958340013361801588367655990575379797454237110701588716509764\
1895 759243657077584013289594787913434812509790293636440469725564\
1896 222946985585616708175959944099853232059130350099233608207347\
1897 955460820122006976717445739825352919058005528371183277021250\
1898 186916447745609162301667393077050176560656798672598371789181\
1899 232542195795945358691713761483976100058707499929103557275695\
1900 937295677892604799308353051124627278706035295473126217205599\
1901 530746756205492173148619619059839609108464715691924592576481\
1902 382126740168148453274964955074129767533813576349605298268179\
1903 068244338581354855186516322703199278802275718580352103754433\
1904 240982354636196477238624205575823556321375833700666021556412\
1905 182358152808745703724362178773168996492870519432472065091133\
1906 11767578124999e-4966L;
1907 static const long double ld1b
=
1908 3.2375875597190125554622194791138232762497846690173405048449\
1909 421945985197700620596855088357456383249701279390707384240598\
1910 382936099431912710233425550359863089915213963553756674672083\
1911 673128192358701197242632527769951957277781260855740340354110\
1912 173441284912381364143945515141786687806740155311932822963199\
1913 131134959539539338316310328556057915323285980341541664226172\
1914 265348802632447238304822896568757017013159021750199744350376\
1915 278243566840330589397015778833566517337174685312047058426075\
1916 688036665697114219175258344917835835984013214761767520398571\
1917 735519302688914468501077605843338555214753050109407568139932\
1918 147308502166696009676987494125921676927574464221699654264839\
1919 192243410627511520570610765229732327315423820550872393685221\
1920 676561948307418196052769717057382723931306989375320957256133\
1921 838073129463951849807075348034900035402513943244599879584009\
1922 391110011261908615236154859382854977144106096407982738165117\
1923 693915685918231984764157652755343417097983676870433731452629\
1924 339981084526616826599425863049784138127555181662391766144738\
1925 159400253422795753041594932607700680306368857466952063923782\
1926 760519487592638820793893796669403574411398166619131986561877\
1927 034635197232626532239192571857518274939275861531537920777299\
1928 133535479548088762634002006634954143608168633852204577195463\
1929 389533233992867620995583241321034602255800668175356808869060\
1930 608582640890741203603916133682748118680676374951545690715916\
1931 241859799379894025137504643469040366684778763795442214328000\
1932 375999444991619403217748350277527106812175542863660436614910\
1933 135938862296156144947361864759321605496309393905421651264941\
1934 669606814994816518612155298709843817262034769175075602668866\
1935 926449523554218142013501373514352370369126244144449924971423\
1936 038024236058971106053649565799145071085840022305247663313482\
1937 714565918140785997808209749619683146844964283106915422726638\
1938 184861327711776708749278315100024436584176080783836115268999\
1939 055336294569042349971163039294272620322160728879610722678506\
1940 182344928526064885227397447578450046944618127903428943538029\
1941 386719288345854473283987116842451647036255801966780244103035\
1942 425445345127067921349083698736056197567752071915587544133815\
1943 717564310032485290205726480489464589999677885266171263493459\
1944 668963623768410922688414177814149693150024191921819721215688\
1945 114324591287371281400636455584825253000890602388603923710921\
1946 026880979879158388608823700222683123228822356907857261909150\
1947 626993825760416437415551396973489279578569909699853422995997\
1948 974315036153120383930698087773157253674975950409660938084071\
1949 173163693891122166282318691732176374528554627905530306369204\
1950 877964658806333996327938827344733821685425961846791581492287\
1951 250044047142934607523718654369478552373072400018635730811749\
1952 291666457582760812726851561001954207941547404866373158231367\
1953 986951247388733285659455982411993350593989550494594498447410\
1954 984783303191128659803467713819821511544998464785455306500918\
1955 241648925913966507036336000231915215026183799886938007038845\
1956 551916478649593272604688927931953165785101738164060543643192\
1957 949066412847647883846835866623820426428526541564774787007791\
1958 235843699657232847114093617412355486871810526396392792853731\
1959 390841657984518997639795008374280777823099107035223998600103\
1960 103211166230289241182380237703814248941627178152962100972452\
1961 217697144954497443279450919433943252592977710901289696002698\
1962 225209041938801190947812141758873162203113090284565687499100\
1963 109623665868340184032428667217835198069330185880779776269137\
1964 742366802202585247113480377505916462865316253065105837519292\
1965 805411191872195967066157363040364443666632564266439033866945\
1966 366496486863801221986778957510023272290593640187551645170603\
1967 215150911733580059874983597994671388176488814794186236946834\
1968 548816837468411497151813344980969677026131105901402313456769\
1969 561412278508799050185582199844418197980544632067644131002512\
1970 557755358307705356209461595354064971347590431926479961905129\
1971 785864961996560707071051177738535042777950247546470241655891\
1972 294428226271478689174637951663865529219133988782700199051475\
1973 108495188941141025360733690471601309904116260484264378352956\
1974 830972782977747351810451586166745640802378131466232692150196\
1975 132319386267589275314909450293562079332893638471814389025392\
1976 970579695249613486078445695214422379148991006996109216699215\
1977 721671648754881325271879493185438097033881789311707997697928\
1978 860866812849648616086569281093053695399558469641977866770538\
1979 476039621947215238679930485285585513808236992918733520331110\
1980 962448142457896209307561142289713638388281085340301520317159\
1981 297224995464365477734040179470355969363384621039467975256670\
1982 339354334892926205316491997244008324897517881293654265688813\
1983 283579663372924392043825371743576754041055802440187836850412\
1984 247984570221893156921757872572872036331343007592090605703195\
1985 088864753777199111760713027328198781654685927174063882187275\
1986 850263521274368447629947228263907797373221137688424821608129\
1987 731003236738630502344377228987961455961818623205503012858619\
1988 800521948637807438081069469400793496307826769301971342062597\
1989 391253779410607511754278887744936774785938056823221738917303\
1990 119592848951788560393540150358649310736020595310015728915288\
1991 289821678102453433273888879288862086153270028346900686360943\
1992 250522514297816412678213672667152836436597491522644579383191\
1993 851483036048273636234050603745735057899230038434384361744893\
1994 838050985090837220507663282503497932038372021626246900935334\
1995 781144388106031405650705176699646299475436084049881780196520\
1996 881623075256119318210664937469946410480660118598143375898298\
1997 965497205621170906772915413181530577151676241283182977713765\
1998 317889730886996471681592298058774155948285325398399674640645\
1999 566475947058303746531133735308766583802401453804232106737787\
2000 768035926272312574958173945816077962772826443125107145322971\
2001 087220172175473177449006473180221085709470643042801004189714\
2002 505520073568915195232936144169440163547568663500508335014169\
2003 425050712038101167190534305435310279534374364467455668392421\
2004 298604104431988622194699721632249712583483143417550152131186\
2005 288827131347662976240916448058011869761525369135147129192405\
2006 037216807405860168320999468074663117771890506566769628495813\
2007 837909047220874786467663205170561835819702362482274133227483\
2008 041342457179876653773960112367066273208176545656826800069574\
2009 547599816180234764485446735080683694920665668954370505715843\
2010 455110709594838989387382250502925336743830916124954071268053\
2011 817964873658921319164268375226716232666274830656557657055342\
2012 393552148933959057023293404027940528842591460490646295820755\
2013 765633076707491896621769767253619370462005760078938144396953\
2014 018925287611875441613896820035092167912718365454954166761481\
2015 511451950826683236776211829914518353242818636196417736206010\
2016 145109509967467266157037719712666871515644277723594273405669\
2017 093518586548079997818085130346801040781966074621669280188633\
2018 856299289656492439545033914935979634179552686396067914528336\
2019 924678729357419403624798426886422277256625046946795576781709\
2020 298737741510378578072199383561520569978396254537274419476511\
2021 983161908266152660163477408756159700314280122283281906103567\
2022 067156627222418787671312246698375736071215395722993294041012\
2023 744631560602983489316782773611740570974847045870362276861106\
2024 774130949410119612624380274679529647271294627526939490197641\
2025 645383447755544661714281218489998189691140343327976729279891\
2026 077101372792811842951182338559423852563331641533781432796742\
2027 873181364582071661749961126386895359760476172215209100274274\
2028 851619657020388051618654944574445941780637669570374280535432\
2029 399157923698778110534174856844986671232161320063786308144771\
2030 068130888985636449091787794632959555876880672773686838364706\
2031 122084832995722603440165161942472322987408003421165899848443\
2032 566885769845535074102932500939450142098799833145629484519298\
2033 622410092757836842296697186410137365818568152771850732591405\
2034 340248509247875448717161746544246407280913725135059228268131\
2035 453903691495906528862410006254958805237716723952273129715780\
2036 425223305517882562616830806755498203755676925741529569939445\
2037 043490046171854709456730491532189688306135861932534903184518\
2038 717706426178028900836080044604143054210332610482947502104703\
2039 032028463320549525316174330585387581543470878545616097381416\
2040 151451037487775797335749896735101048367502483255117772375025\
2041 269956476872153642623856062175536913321594213515989059505375\
2042 135183515207096576145781316398544325320022366962008554087665\
2043 201050763789833457082359181807492731245904330245198691471329\
2044 319324627030678762142685799400660305214140453863665517807185\
2045 105354694177602424937823924511789133225030926924236498557565\
2046 212794565582753399214908928688568628950225640472058381324292\
2047 866007645368390366981937596341868992912741319342960598330486\
2048 905946276235953206760977215407164729909506118583728562718724\
2049 235732515062300426080741679038098122641980345051854359908213\
2050 563779664847422505775922437272989231878912994048540484468227\
2051 199282393172540734295329890896755037903724644870572648941076\
2052 132423009124870700536763793881894969000042397318202298868940\
2053 530196108237639578098191879486398269734335286831689173606327\
2054 500405178476864790935386838169242131756729797688220656276969\
2055 434749140204830563840068728357383111109865861495106613619153\
2056 421725274090787422508800568671498311491210197298472420373359\
2057 044400631309819996507004167876832936101195902219429743174557\
2058 163362274547892397934880322990633165889175059124060202200452\
2059 648684577182821651588921716304707095995039972827781680978274\
2060 973838841958209215836456212939412000456040621743349981715350\
2061 305133662772937143899882197561295808685181679238411733642697\
2062 748892466944352640514849114619882270112386610376024527101889\
2063 119004382703622803911212700216792471528793241950356942780714\
2064 774957204475130171711488773121937363663487116301055073658645\
2065 980695862570269762957141239436916216723776945522480189876803\
2066 386123827956059851911061129713987960026363403936931196519733\
2067 447116468545744829997003979525368783485129837821983305137448\
2068 031689360764270759437872004895754351479890333865299565515706\
2069 690471030702230767978923298480584997256328135245813726407464\
2070 159230169328539541524724878662873185450510653764301207480799\
2071 488602832618557388369552461881286225098286358672257087829660\
2072 174231705350465091313887538950130611513878400895128618426154\
2073 417299623157313010877679890009181366178705821415173309356192\
2074 686429159835537275875876767919535369607142366878476025895389\
2075 279625854409611312402187942369446302119309705461187450803468\
2076 606366203101933821675974655441744883993796837164178911391575\
2077 751463591650231265941242686108002052587760190005508737394014\
2078 453031299745602214380618917954427803281262300931789525045703\
2079 809571995929933387196864877982754748535701000330924817431298\
2080 365273697561943437891318220691072831562717726798635382168915\
2081 187137325209768346284183473712613689334546294053718697897526\
2082 843398053681374508250012035211936425982389543291022583173280\
2083 985811169783438836113209408147936547458073361625570571955232\
2084 746103236016857123149307991441916732438322836596693687161268\
2085 151183603534413030099360835441935243365729307681545065674775\
2086 655582111435085683962037818795920337874290127531069511296530\
2087 746308404963763022896682861683252995925040540038039172626001\
2088 958340013361801588367655990575379797454237110701588716509764\
2089 759243657077584013289594787913434812509790293636440469725564\
2090 222946985585616708175959944099853232059130350099233608207347\
2091 955460820122006976717445739825352919058005528371183277021250\
2092 186916447745609162301667393077050176560656798672598371789181\
2093 232542195795945358691713761483976100058707499929103557275695\
2094 937295677892604799308353051124627278706035295473126217205599\
2095 530746756205492173148619619059839609108464715691924592576481\
2096 382126740168148453274964955074129767533813576349605298268179\
2097 068244338581354855186516322703199278802275718580352103754433\
2098 240982354636196477238624205575823556321375833700666021556412\
2099 182358152808745703724362178773168996492870519432472065091133\
2101 static const long double ld1c
=
2102 3.2375875597190125554622194791138232762497846690173405048449\
2103 421945985197700620596855088357456383249701279390707384240598\
2104 382936099431912710233425550359863089915213963553756674672083\
2105 673128192358701197242632527769951957277781260855740340354110\
2106 173441284912381364143945515141786687806740155311932822963199\
2107 131134959539539338316310328556057915323285980341541664226172\
2108 265348802632447238304822896568757017013159021750199744350376\
2109 278243566840330589397015778833566517337174685312047058426075\
2110 688036665697114219175258344917835835984013214761767520398571\
2111 735519302688914468501077605843338555214753050109407568139932\
2112 147308502166696009676987494125921676927574464221699654264839\
2113 192243410627511520570610765229732327315423820550872393685221\
2114 676561948307418196052769717057382723931306989375320957256133\
2115 838073129463951849807075348034900035402513943244599879584009\
2116 391110011261908615236154859382854977144106096407982738165117\
2117 693915685918231984764157652755343417097983676870433731452629\
2118 339981084526616826599425863049784138127555181662391766144738\
2119 159400253422795753041594932607700680306368857466952063923782\
2120 760519487592638820793893796669403574411398166619131986561877\
2121 034635197232626532239192571857518274939275861531537920777299\
2122 133535479548088762634002006634954143608168633852204577195463\
2123 389533233992867620995583241321034602255800668175356808869060\
2124 608582640890741203603916133682748118680676374951545690715916\
2125 241859799379894025137504643469040366684778763795442214328000\
2126 375999444991619403217748350277527106812175542863660436614910\
2127 135938862296156144947361864759321605496309393905421651264941\
2128 669606814994816518612155298709843817262034769175075602668866\
2129 926449523554218142013501373514352370369126244144449924971423\
2130 038024236058971106053649565799145071085840022305247663313482\
2131 714565918140785997808209749619683146844964283106915422726638\
2132 184861327711776708749278315100024436584176080783836115268999\
2133 055336294569042349971163039294272620322160728879610722678506\
2134 182344928526064885227397447578450046944618127903428943538029\
2135 386719288345854473283987116842451647036255801966780244103035\
2136 425445345127067921349083698736056197567752071915587544133815\
2137 717564310032485290205726480489464589999677885266171263493459\
2138 668963623768410922688414177814149693150024191921819721215688\
2139 114324591287371281400636455584825253000890602388603923710921\
2140 026880979879158388608823700222683123228822356907857261909150\
2141 626993825760416437415551396973489279578569909699853422995997\
2142 974315036153120383930698087773157253674975950409660938084071\
2143 173163693891122166282318691732176374528554627905530306369204\
2144 877964658806333996327938827344733821685425961846791581492287\
2145 250044047142934607523718654369478552373072400018635730811749\
2146 291666457582760812726851561001954207941547404866373158231367\
2147 986951247388733285659455982411993350593989550494594498447410\
2148 984783303191128659803467713819821511544998464785455306500918\
2149 241648925913966507036336000231915215026183799886938007038845\
2150 551916478649593272604688927931953165785101738164060543643192\
2151 949066412847647883846835866623820426428526541564774787007791\
2152 235843699657232847114093617412355486871810526396392792853731\
2153 390841657984518997639795008374280777823099107035223998600103\
2154 103211166230289241182380237703814248941627178152962100972452\
2155 217697144954497443279450919433943252592977710901289696002698\
2156 225209041938801190947812141758873162203113090284565687499100\
2157 109623665868340184032428667217835198069330185880779776269137\
2158 742366802202585247113480377505916462865316253065105837519292\
2159 805411191872195967066157363040364443666632564266439033866945\
2160 366496486863801221986778957510023272290593640187551645170603\
2161 215150911733580059874983597994671388176488814794186236946834\
2162 548816837468411497151813344980969677026131105901402313456769\
2163 561412278508799050185582199844418197980544632067644131002512\
2164 557755358307705356209461595354064971347590431926479961905129\
2165 785864961996560707071051177738535042777950247546470241655891\
2166 294428226271478689174637951663865529219133988782700199051475\
2167 108495188941141025360733690471601309904116260484264378352956\
2168 830972782977747351810451586166745640802378131466232692150196\
2169 132319386267589275314909450293562079332893638471814389025392\
2170 970579695249613486078445695214422379148991006996109216699215\
2171 721671648754881325271879493185438097033881789311707997697928\
2172 860866812849648616086569281093053695399558469641977866770538\
2173 476039621947215238679930485285585513808236992918733520331110\
2174 962448142457896209307561142289713638388281085340301520317159\
2175 297224995464365477734040179470355969363384621039467975256670\
2176 339354334892926205316491997244008324897517881293654265688813\
2177 283579663372924392043825371743576754041055802440187836850412\
2178 247984570221893156921757872572872036331343007592090605703195\
2179 088864753777199111760713027328198781654685927174063882187275\
2180 850263521274368447629947228263907797373221137688424821608129\
2181 731003236738630502344377228987961455961818623205503012858619\
2182 800521948637807438081069469400793496307826769301971342062597\
2183 391253779410607511754278887744936774785938056823221738917303\
2184 119592848951788560393540150358649310736020595310015728915288\
2185 289821678102453433273888879288862086153270028346900686360943\
2186 250522514297816412678213672667152836436597491522644579383191\
2187 851483036048273636234050603745735057899230038434384361744893\
2188 838050985090837220507663282503497932038372021626246900935334\
2189 781144388106031405650705176699646299475436084049881780196520\
2190 881623075256119318210664937469946410480660118598143375898298\
2191 965497205621170906772915413181530577151676241283182977713765\
2192 317889730886996471681592298058774155948285325398399674640645\
2193 566475947058303746531133735308766583802401453804232106737787\
2194 768035926272312574958173945816077962772826443125107145322971\
2195 087220172175473177449006473180221085709470643042801004189714\
2196 505520073568915195232936144169440163547568663500508335014169\
2197 425050712038101167190534305435310279534374364467455668392421\
2198 298604104431988622194699721632249712583483143417550152131186\
2199 288827131347662976240916448058011869761525369135147129192405\
2200 037216807405860168320999468074663117771890506566769628495813\
2201 837909047220874786467663205170561835819702362482274133227483\
2202 041342457179876653773960112367066273208176545656826800069574\
2203 547599816180234764485446735080683694920665668954370505715843\
2204 455110709594838989387382250502925336743830916124954071268053\
2205 817964873658921319164268375226716232666274830656557657055342\
2206 393552148933959057023293404027940528842591460490646295820755\
2207 765633076707491896621769767253619370462005760078938144396953\
2208 018925287611875441613896820035092167912718365454954166761481\
2209 511451950826683236776211829914518353242818636196417736206010\
2210 145109509967467266157037719712666871515644277723594273405669\
2211 093518586548079997818085130346801040781966074621669280188633\
2212 856299289656492439545033914935979634179552686396067914528336\
2213 924678729357419403624798426886422277256625046946795576781709\
2214 298737741510378578072199383561520569978396254537274419476511\
2215 983161908266152660163477408756159700314280122283281906103567\
2216 067156627222418787671312246698375736071215395722993294041012\
2217 744631560602983489316782773611740570974847045870362276861106\
2218 774130949410119612624380274679529647271294627526939490197641\
2219 645383447755544661714281218489998189691140343327976729279891\
2220 077101372792811842951182338559423852563331641533781432796742\
2221 873181364582071661749961126386895359760476172215209100274274\
2222 851619657020388051618654944574445941780637669570374280535432\
2223 399157923698778110534174856844986671232161320063786308144771\
2224 068130888985636449091787794632959555876880672773686838364706\
2225 122084832995722603440165161942472322987408003421165899848443\
2226 566885769845535074102932500939450142098799833145629484519298\
2227 622410092757836842296697186410137365818568152771850732591405\
2228 340248509247875448717161746544246407280913725135059228268131\
2229 453903691495906528862410006254958805237716723952273129715780\
2230 425223305517882562616830806755498203755676925741529569939445\
2231 043490046171854709456730491532189688306135861932534903184518\
2232 717706426178028900836080044604143054210332610482947502104703\
2233 032028463320549525316174330585387581543470878545616097381416\
2234 151451037487775797335749896735101048367502483255117772375025\
2235 269956476872153642623856062175536913321594213515989059505375\
2236 135183515207096576145781316398544325320022366962008554087665\
2237 201050763789833457082359181807492731245904330245198691471329\
2238 319324627030678762142685799400660305214140453863665517807185\
2239 105354694177602424937823924511789133225030926924236498557565\
2240 212794565582753399214908928688568628950225640472058381324292\
2241 866007645368390366981937596341868992912741319342960598330486\
2242 905946276235953206760977215407164729909506118583728562718724\
2243 235732515062300426080741679038098122641980345051854359908213\
2244 563779664847422505775922437272989231878912994048540484468227\
2245 199282393172540734295329890896755037903724644870572648941076\
2246 132423009124870700536763793881894969000042397318202298868940\
2247 530196108237639578098191879486398269734335286831689173606327\
2248 500405178476864790935386838169242131756729797688220656276969\
2249 434749140204830563840068728357383111109865861495106613619153\
2250 421725274090787422508800568671498311491210197298472420373359\
2251 044400631309819996507004167876832936101195902219429743174557\
2252 163362274547892397934880322990633165889175059124060202200452\
2253 648684577182821651588921716304707095995039972827781680978274\
2254 973838841958209215836456212939412000456040621743349981715350\
2255 305133662772937143899882197561295808685181679238411733642697\
2256 748892466944352640514849114619882270112386610376024527101889\
2257 119004382703622803911212700216792471528793241950356942780714\
2258 774957204475130171711488773121937363663487116301055073658645\
2259 980695862570269762957141239436916216723776945522480189876803\
2260 386123827956059851911061129713987960026363403936931196519733\
2261 447116468545744829997003979525368783485129837821983305137448\
2262 031689360764270759437872004895754351479890333865299565515706\
2263 690471030702230767978923298480584997256328135245813726407464\
2264 159230169328539541524724878662873185450510653764301207480799\
2265 488602832618557388369552461881286225098286358672257087829660\
2266 174231705350465091313887538950130611513878400895128618426154\
2267 417299623157313010877679890009181366178705821415173309356192\
2268 686429159835537275875876767919535369607142366878476025895389\
2269 279625854409611312402187942369446302119309705461187450803468\
2270 606366203101933821675974655441744883993796837164178911391575\
2271 751463591650231265941242686108002052587760190005508737394014\
2272 453031299745602214380618917954427803281262300931789525045703\
2273 809571995929933387196864877982754748535701000330924817431298\
2274 365273697561943437891318220691072831562717726798635382168915\
2275 187137325209768346284183473712613689334546294053718697897526\
2276 843398053681374508250012035211936425982389543291022583173280\
2277 985811169783438836113209408147936547458073361625570571955232\
2278 746103236016857123149307991441916732438322836596693687161268\
2279 151183603534413030099360835441935243365729307681545065674775\
2280 655582111435085683962037818795920337874290127531069511296530\
2281 746308404963763022896682861683252995925040540038039172626001\
2282 958340013361801588367655990575379797454237110701588716509764\
2283 759243657077584013289594787913434812509790293636440469725564\
2284 222946985585616708175959944099853232059130350099233608207347\
2285 955460820122006976717445739825352919058005528371183277021250\
2286 186916447745609162301667393077050176560656798672598371789181\
2287 232542195795945358691713761483976100058707499929103557275695\
2288 937295677892604799308353051124627278706035295473126217205599\
2289 530746756205492173148619619059839609108464715691924592576481\
2290 382126740168148453274964955074129767533813576349605298268179\
2291 068244338581354855186516322703199278802275718580352103754433\
2292 240982354636196477238624205575823556321375833700666021556412\
2293 182358152808745703724362178773168996492870519432472065091133\
2294 11767578125001e-4966L;
2296 static const long double ld2ae
= 0x1p
-16494L, ld2be
= 0x2p
-16494L, ld2ce
= 0x2p
-16494L;
2297 static const long double ld2a
=
2298 9.7127626791570376663866584373414698287493540070520215145348\
2299 265837955593101861790565265072369149749103838172122152721795\
2300 148808298295738130700276651079589269745641890661270024016251\
2301 019384577076103591727897583309855871833343782567221021062330\
2302 520323854737144092431836545425360063420220465935798468889597\
2303 393404878618618014948930985668173745969857941024624992678516\
2304 796046407897341714914468689706271051039477065250599233051128\
2305 834730700520991768191047336500699552011524055936141175278227\
2306 064109997091342657525775034753507507952039644285302561195715\
2307 206557908066743405503232817530015665644259150328222704419796\
2308 441925506500088029030962482377765030782723392665098962794517\
2309 576730231882534561711832295689196981946271461652617181055665\
2310 029685844922254588158309151172148171793920968125962871768401\
2311 514219388391855549421226044104700106207541829733799638752028\
2312 173330033785725845708464578148564931432318289223948214495353\
2313 081747057754695954292472958266030251293951030611301194357888\
2314 019943253579850479798277589149352414382665544987175298434214\
2315 478200760268387259124784797823102040919106572400856191771348\
2316 281558462777916462381681390008210723234194499857395959685631\
2317 103905591697879596717577715572554824817827584594613762331897\
2318 400606438644266287902006019904862430824505901556613731586390\
2319 168599701978602862986749723963103806767402004526070426607181\
2320 825747922672223610811748401048244356042029124854637072147748\
2321 725579398139682075412513930407121100054336291386326642984001\
2322 127998334974858209653245050832581320436526628590981309844730\
2323 407816586888468434842085594277964816488928181716264953794825\
2324 008820444984449555836465896129531451786104307525226808006600\
2325 779348570662654426040504120543057111107378732433349774914269\
2326 114072708176913318160948697397435213257520066915742989940448\
2327 143697754422357993424629248859049440534892849320746268179914\
2328 554583983135330126247834945300073309752528242351508345806997\
2329 166008883707127049913489117882817860966482186638832168035518\
2330 547034785578194655682192342735350140833854383710286830614088\
2331 160157865037563419851961350527354941108767405900340732309106\
2332 276336035381203764047251096208168592703256215746762632401447\
2333 152692930097455870617179441468393769999033655798513790480379\
2334 006890871305232768065242533442449079450072575765459163647064\
2335 342973773862113844201909366754475759002671807165811771132763\
2336 080642939637475165826471100668049369686467070723571785727451\
2337 880981477281249312246654190920467838735709729099560268987993\
2338 922945108459361151792094263319471761024927851228982814252213\
2339 519491081673366498846956075196529123585663883716590919107614\
2340 633893976419001988983816482034201465056277885540374744476861\
2341 750132141428803822571155963108435657119217200055907192435247\
2342 874999372748282438180554683005862623824642214599119474694103\
2343 960853742166199856978367947235980051781968651483783495342232\
2344 954349909573385979410403141459464534634995394356365919502754\
2345 724946777741899521109008000695745645078551399660814021116536\
2346 655749435948779817814066783795859497355305214492181630929578\
2347 847199238542943651540507599871461279285579624694324361023373\
2348 707531098971698541342280852237066460615431579189178378561194\
2349 172524973953556992919385025122842333469297321105671995800309\
2350 309633498690867723547140713111442746824881534458886302917356\
2351 653091434863492329838352758301829757778933132703869088008094\
2352 675627125816403572843436425276619486609339270853697062497300\
2353 328870997605020552097286001653505594207990557642339328807413\
2354 227100406607755741340441132517749388595948759195317512557878\
2355 416233575616587901198472089121093330999897692799317101600836\
2356 099489460591403665960336872530069816871780920562654935511809\
2357 645452735200740179624950793984014164529466444382558710840503\
2358 646450512405234491455440034942909031078393317704206940370308\
2359 684236835526397150556746599533254593941633896202932393007537\
2360 673266074923116068628384786062194914042771295779439885715389\
2361 357594885989682121213153533215605128333850742639410724967673\
2362 883284678814436067523913854991596587657401966348100597154425\
2363 325485566823423076082201071414803929712348781452793135058870\
2364 492918348933242055431354758500236922407134394398698076450588\
2365 396958158802767825944728350880686237998680915415443167076178\
2366 911739085748840458235337085643267137446973020988327650097647\
2367 165014946264643975815638479556314291101645367935123993093786\
2368 582600438548945848259707843279161086198675408925933600311615\
2369 428118865841645716039791455856756541424710978756200560993332\
2370 887344427373688627922683426869140915164843256020904560951477\
2371 891674986393096433202120538411067908090153863118403925770011\
2372 018063004678778615949475991732024974692553643880962797066439\
2373 850738990118773176131476115230730262123167407320563510551236\
2374 743953710665679470765273617718616108994029022776271817109585\
2375 266594261331597335282139081984596344964057781522191646561827\
2376 550790563823105342889841684791723392119663413065274464824389\
2377 193009710215891507033131686963884367885455869616509038575859\
2378 401565845913422314243208408202380488923480307905914026187792\
2379 173761338231822535262836663234810324357814170469665216751909\
2380 358778546855365681180620451075947932208061785930047186745864\
2381 869465034307360299821666637866586258459810085040702059082829\
2382 751567542893449238034641018001458509309792474567933738149575\
2383 554449108144820908702151811237205173697690115303153085234681\
2384 514152955272511661522989847510493796115116064878740702806004\
2385 343433164318094216952115530098938898426308252149645340589562\
2386 644869225768357954631994812409839231441980355794430127694896\
2387 896491616863512720318746239544591731455028723849548933141295\
2388 953669192660989415044776894176322467844855976195199023921936\
2389 699427841174911239593401205926299751407204361412696320213363\
2390 304107778816937724874521837448233888318479329375321435968913\
2391 261660516526419532347019419540663257128411929128403012569143\
2392 516560220706745585698808432508320490642705990501525005042508\
2393 275152136114303501571602916305930838603123093402367005177263\
2394 895812313295965866584099164896749137750449430252650456393558\
2395 866481394042988928722749344174035609284576107405441387577215\
2396 111650422217580504962998404223989353315671519700308885487441\
2397 513727141662624359402989615511685507459107087446822399682449\
2398 124027371539629961321880337101198819624529636970480400208723\
2399 642799448540704293456340205242051084761997006863111517147530\
2400 365332128784516968162146751508776010231492748374862213804161\
2401 453894620976763957492805125680148697998824491969672971166027\
2402 180656446801877171069880212083821586527774381471938887462267\
2403 296899230122475689865309301760858111386017280236814433190859\
2404 056775862835626324841690460105276503738155096364862500284444\
2405 534355852480049710328635489743555059728455908589253208618030\
2406 435328529902401798471113159138000614546932833170782820217007\
2407 280555759644239993454255391040403122345898223865007840565901\
2408 568897868969477318635101744807938902538658059188203743585010\
2409 774036188072258210874395280659266831769875140840386730345127\
2410 896213224531135734216598150684561709935188763611823258429535\
2411 949485724798457980490432226268479100942840366849845718310701\
2412 201469881667256363013936740095127208213646187168979882123038\
2413 233894681808950467950348320835221712924541137611086830583320\
2414 322392848230358837873140824038588941813883882580818470592924\
2415 936150343266633985142843655469994569073421029983930187839673\
2416 231304118378435528853547015678271557689994924601344298390228\
2417 619544093746214985249883379160686079281428516645627300822824\
2418 554858971061164154855964833723337825341913008711122841606297\
2419 197473771096334331602524570534960013696483960191358924434313\
2420 204392666956909347275363383898878667630642018321060515094118\
2421 366254498987167810320495485827416968962224010263497699545330\
2422 700657309536605222308797502818350426296399499436888453557895\
2423 867230278273510526890091559230412097455704458315552197774216\
2424 020745527743626346151485239632739221842741175405177684804394\
2425 361711074487719586587230018764876415713150171856819389147341\
2426 275669916553647687850492420266494611267030777224588709818335\
2427 130470138515564128370191474596569064918407585797604709553556\
2428 153119278534086702508240133812429162630997831448842506314109\
2429 096085389961648575948522991756162744630412635636848292144248\
2430 454353112463327392007249690205303145102507449765353317125075\
2431 809869430616460927871568186526610739964782640547967178516125\
2432 405550545621289728437343949195632975960067100886025662262995\
2433 603152291369500371247077545422478193737712990735596074413987\
2434 957973881092036286428057398201980915642421361590996553421555\
2435 316064082532807274813471773535367399675092780772709495672695\
2436 638383696748260197644726786065705886850676921416175143972878\
2437 598022936105171100945812789025606978738223958028881794991460\
2438 717838828707859620282931646221494189728518355751185688156172\
2439 707197545186901278242225037114294367925941035155563079724640\
2440 691338994542267517327767311818967695636738982145621453404681\
2441 597847179517622202885989672690265113711173934611717946823228\
2442 397269027374612101610291381645684907000127191954606896606821\
2443 590588324712918734294575638459194809203005860495067520818982\
2444 501215535430594372806160514507726395270189393064661968830908\
2445 304247420614491691520206185072149333329597584485319840857460\
2446 265175822272362267526401706014494934473630591895417261120077\
2447 133201893929459989521012503630498808303587706658289229523671\
2448 490086823643677193804640968971899497667525177372180606601357\
2449 946053731548464954766765148914121287985119918483345042934824\
2450 921516525874627647509368638818236001368121865230049945146050\
2451 915400988318811431699646592683887426055545037715235200928093\
2452 246677400833057921544547343859646810337159831128073581305667\
2453 357013148110868411733638100650377414586379725851070828342144\
2454 324871613425390515134466319365812090990461348903165220975937\
2455 942087587710809288871423718310748650171330836567440569630410\
2456 158371483868179555733183389141963880079090211810793589559200\
2457 341349405637234489991011938576106350455389513465949915412344\
2458 095068082292812278313616014687263054439671001595898696547120\
2459 071413092106692303936769895441754991768984405737441179222392\
2460 477690507985618624574174635988619556351531961292903622442398\
2461 465808497855672165108657385643858675294859076016771263488980\
2462 522695116051395273941662616850391834541635202685385855278463\
2463 251898869471939032633039670027544098536117464245519928068578\
2464 059287479506611827627630303758606108821427100635428077686167\
2465 838877563228833937206563827108338906357929116383562352410405\
2466 819098609305801465027923966325234651981390511492536734174727\
2467 254390774950693797823728058324006157763280570016526212182043\
2468 359093899236806643141856753863283409843786902795368575137111\
2469 428715987789800161590594633948264245607103000992774452293895\
2470 095821092685830313673954662073218494688153180395906146506745\
2471 561411975629305038852550421137841068003638882161156093692580\
2472 530194161044123524750036105635809277947168629873067749519842\
2473 957433509350316508339628224443809642374220084876711715865698\
2474 238309708050571369447923974325750197314968509790081061483804\
2475 453550810603239090298082506325805730097187923044635197024326\
2476 966746334305257051886113456387761013622870382593208533889592\
2477 238925214891289068690048585049758987775121620114117517878005\
2478 875020040085404765102967971726139392362711332104766149529294\
2479 277730971232752039868784363740304437529370880909321409176692\
2480 668840956756850124527879832299559696177391050297700824622043\
2481 866382460366020930152337219476058757174016585113549831063750\
2482 560749343236827486905002179231150529681970396017795115367543\
2483 697626587387836076075141284451928300176122499787310671827087\
2484 811887033677814397925059153373881836118105886419378651616798\
2485 592240268616476519445858857179518827325394147075773777729444\
2486 146380220504445359824894865222389302601440729048815894804537\
2487 204733015744064565559548968109597836406827155741056311263299\
2488 722947063908589431715872616727470668964127501101998064669236\
2489 547074458426237111173086536319506989478611558297416195273399\
2490 35302734374999e-4966L;
2491 static const long double ld2b
=
2492 9.7127626791570376663866584373414698287493540070520215145348\
2493 265837955593101861790565265072369149749103838172122152721795\
2494 148808298295738130700276651079589269745641890661270024016251\
2495 019384577076103591727897583309855871833343782567221021062330\
2496 520323854737144092431836545425360063420220465935798468889597\
2497 393404878618618014948930985668173745969857941024624992678516\
2498 796046407897341714914468689706271051039477065250599233051128\
2499 834730700520991768191047336500699552011524055936141175278227\
2500 064109997091342657525775034753507507952039644285302561195715\
2501 206557908066743405503232817530015665644259150328222704419796\
2502 441925506500088029030962482377765030782723392665098962794517\
2503 576730231882534561711832295689196981946271461652617181055665\
2504 029685844922254588158309151172148171793920968125962871768401\
2505 514219388391855549421226044104700106207541829733799638752028\
2506 173330033785725845708464578148564931432318289223948214495353\
2507 081747057754695954292472958266030251293951030611301194357888\
2508 019943253579850479798277589149352414382665544987175298434214\
2509 478200760268387259124784797823102040919106572400856191771348\
2510 281558462777916462381681390008210723234194499857395959685631\
2511 103905591697879596717577715572554824817827584594613762331897\
2512 400606438644266287902006019904862430824505901556613731586390\
2513 168599701978602862986749723963103806767402004526070426607181\
2514 825747922672223610811748401048244356042029124854637072147748\
2515 725579398139682075412513930407121100054336291386326642984001\
2516 127998334974858209653245050832581320436526628590981309844730\
2517 407816586888468434842085594277964816488928181716264953794825\
2518 008820444984449555836465896129531451786104307525226808006600\
2519 779348570662654426040504120543057111107378732433349774914269\
2520 114072708176913318160948697397435213257520066915742989940448\
2521 143697754422357993424629248859049440534892849320746268179914\
2522 554583983135330126247834945300073309752528242351508345806997\
2523 166008883707127049913489117882817860966482186638832168035518\
2524 547034785578194655682192342735350140833854383710286830614088\
2525 160157865037563419851961350527354941108767405900340732309106\
2526 276336035381203764047251096208168592703256215746762632401447\
2527 152692930097455870617179441468393769999033655798513790480379\
2528 006890871305232768065242533442449079450072575765459163647064\
2529 342973773862113844201909366754475759002671807165811771132763\
2530 080642939637475165826471100668049369686467070723571785727451\
2531 880981477281249312246654190920467838735709729099560268987993\
2532 922945108459361151792094263319471761024927851228982814252213\
2533 519491081673366498846956075196529123585663883716590919107614\
2534 633893976419001988983816482034201465056277885540374744476861\
2535 750132141428803822571155963108435657119217200055907192435247\
2536 874999372748282438180554683005862623824642214599119474694103\
2537 960853742166199856978367947235980051781968651483783495342232\
2538 954349909573385979410403141459464534634995394356365919502754\
2539 724946777741899521109008000695745645078551399660814021116536\
2540 655749435948779817814066783795859497355305214492181630929578\
2541 847199238542943651540507599871461279285579624694324361023373\
2542 707531098971698541342280852237066460615431579189178378561194\
2543 172524973953556992919385025122842333469297321105671995800309\
2544 309633498690867723547140713111442746824881534458886302917356\
2545 653091434863492329838352758301829757778933132703869088008094\
2546 675627125816403572843436425276619486609339270853697062497300\
2547 328870997605020552097286001653505594207990557642339328807413\
2548 227100406607755741340441132517749388595948759195317512557878\
2549 416233575616587901198472089121093330999897692799317101600836\
2550 099489460591403665960336872530069816871780920562654935511809\
2551 645452735200740179624950793984014164529466444382558710840503\
2552 646450512405234491455440034942909031078393317704206940370308\
2553 684236835526397150556746599533254593941633896202932393007537\
2554 673266074923116068628384786062194914042771295779439885715389\
2555 357594885989682121213153533215605128333850742639410724967673\
2556 883284678814436067523913854991596587657401966348100597154425\
2557 325485566823423076082201071414803929712348781452793135058870\
2558 492918348933242055431354758500236922407134394398698076450588\
2559 396958158802767825944728350880686237998680915415443167076178\
2560 911739085748840458235337085643267137446973020988327650097647\
2561 165014946264643975815638479556314291101645367935123993093786\
2562 582600438548945848259707843279161086198675408925933600311615\
2563 428118865841645716039791455856756541424710978756200560993332\
2564 887344427373688627922683426869140915164843256020904560951477\
2565 891674986393096433202120538411067908090153863118403925770011\
2566 018063004678778615949475991732024974692553643880962797066439\
2567 850738990118773176131476115230730262123167407320563510551236\
2568 743953710665679470765273617718616108994029022776271817109585\
2569 266594261331597335282139081984596344964057781522191646561827\
2570 550790563823105342889841684791723392119663413065274464824389\
2571 193009710215891507033131686963884367885455869616509038575859\
2572 401565845913422314243208408202380488923480307905914026187792\
2573 173761338231822535262836663234810324357814170469665216751909\
2574 358778546855365681180620451075947932208061785930047186745864\
2575 869465034307360299821666637866586258459810085040702059082829\
2576 751567542893449238034641018001458509309792474567933738149575\
2577 554449108144820908702151811237205173697690115303153085234681\
2578 514152955272511661522989847510493796115116064878740702806004\
2579 343433164318094216952115530098938898426308252149645340589562\
2580 644869225768357954631994812409839231441980355794430127694896\
2581 896491616863512720318746239544591731455028723849548933141295\
2582 953669192660989415044776894176322467844855976195199023921936\
2583 699427841174911239593401205926299751407204361412696320213363\
2584 304107778816937724874521837448233888318479329375321435968913\
2585 261660516526419532347019419540663257128411929128403012569143\
2586 516560220706745585698808432508320490642705990501525005042508\
2587 275152136114303501571602916305930838603123093402367005177263\
2588 895812313295965866584099164896749137750449430252650456393558\
2589 866481394042988928722749344174035609284576107405441387577215\
2590 111650422217580504962998404223989353315671519700308885487441\
2591 513727141662624359402989615511685507459107087446822399682449\
2592 124027371539629961321880337101198819624529636970480400208723\
2593 642799448540704293456340205242051084761997006863111517147530\
2594 365332128784516968162146751508776010231492748374862213804161\
2595 453894620976763957492805125680148697998824491969672971166027\
2596 180656446801877171069880212083821586527774381471938887462267\
2597 296899230122475689865309301760858111386017280236814433190859\
2598 056775862835626324841690460105276503738155096364862500284444\
2599 534355852480049710328635489743555059728455908589253208618030\
2600 435328529902401798471113159138000614546932833170782820217007\
2601 280555759644239993454255391040403122345898223865007840565901\
2602 568897868969477318635101744807938902538658059188203743585010\
2603 774036188072258210874395280659266831769875140840386730345127\
2604 896213224531135734216598150684561709935188763611823258429535\
2605 949485724798457980490432226268479100942840366849845718310701\
2606 201469881667256363013936740095127208213646187168979882123038\
2607 233894681808950467950348320835221712924541137611086830583320\
2608 322392848230358837873140824038588941813883882580818470592924\
2609 936150343266633985142843655469994569073421029983930187839673\
2610 231304118378435528853547015678271557689994924601344298390228\
2611 619544093746214985249883379160686079281428516645627300822824\
2612 554858971061164154855964833723337825341913008711122841606297\
2613 197473771096334331602524570534960013696483960191358924434313\
2614 204392666956909347275363383898878667630642018321060515094118\
2615 366254498987167810320495485827416968962224010263497699545330\
2616 700657309536605222308797502818350426296399499436888453557895\
2617 867230278273510526890091559230412097455704458315552197774216\
2618 020745527743626346151485239632739221842741175405177684804394\
2619 361711074487719586587230018764876415713150171856819389147341\
2620 275669916553647687850492420266494611267030777224588709818335\
2621 130470138515564128370191474596569064918407585797604709553556\
2622 153119278534086702508240133812429162630997831448842506314109\
2623 096085389961648575948522991756162744630412635636848292144248\
2624 454353112463327392007249690205303145102507449765353317125075\
2625 809869430616460927871568186526610739964782640547967178516125\
2626 405550545621289728437343949195632975960067100886025662262995\
2627 603152291369500371247077545422478193737712990735596074413987\
2628 957973881092036286428057398201980915642421361590996553421555\
2629 316064082532807274813471773535367399675092780772709495672695\
2630 638383696748260197644726786065705886850676921416175143972878\
2631 598022936105171100945812789025606978738223958028881794991460\
2632 717838828707859620282931646221494189728518355751185688156172\
2633 707197545186901278242225037114294367925941035155563079724640\
2634 691338994542267517327767311818967695636738982145621453404681\
2635 597847179517622202885989672690265113711173934611717946823228\
2636 397269027374612101610291381645684907000127191954606896606821\
2637 590588324712918734294575638459194809203005860495067520818982\
2638 501215535430594372806160514507726395270189393064661968830908\
2639 304247420614491691520206185072149333329597584485319840857460\
2640 265175822272362267526401706014494934473630591895417261120077\
2641 133201893929459989521012503630498808303587706658289229523671\
2642 490086823643677193804640968971899497667525177372180606601357\
2643 946053731548464954766765148914121287985119918483345042934824\
2644 921516525874627647509368638818236001368121865230049945146050\
2645 915400988318811431699646592683887426055545037715235200928093\
2646 246677400833057921544547343859646810337159831128073581305667\
2647 357013148110868411733638100650377414586379725851070828342144\
2648 324871613425390515134466319365812090990461348903165220975937\
2649 942087587710809288871423718310748650171330836567440569630410\
2650 158371483868179555733183389141963880079090211810793589559200\
2651 341349405637234489991011938576106350455389513465949915412344\
2652 095068082292812278313616014687263054439671001595898696547120\
2653 071413092106692303936769895441754991768984405737441179222392\
2654 477690507985618624574174635988619556351531961292903622442398\
2655 465808497855672165108657385643858675294859076016771263488980\
2656 522695116051395273941662616850391834541635202685385855278463\
2657 251898869471939032633039670027544098536117464245519928068578\
2658 059287479506611827627630303758606108821427100635428077686167\
2659 838877563228833937206563827108338906357929116383562352410405\
2660 819098609305801465027923966325234651981390511492536734174727\
2661 254390774950693797823728058324006157763280570016526212182043\
2662 359093899236806643141856753863283409843786902795368575137111\
2663 428715987789800161590594633948264245607103000992774452293895\
2664 095821092685830313673954662073218494688153180395906146506745\
2665 561411975629305038852550421137841068003638882161156093692580\
2666 530194161044123524750036105635809277947168629873067749519842\
2667 957433509350316508339628224443809642374220084876711715865698\
2668 238309708050571369447923974325750197314968509790081061483804\
2669 453550810603239090298082506325805730097187923044635197024326\
2670 966746334305257051886113456387761013622870382593208533889592\
2671 238925214891289068690048585049758987775121620114117517878005\
2672 875020040085404765102967971726139392362711332104766149529294\
2673 277730971232752039868784363740304437529370880909321409176692\
2674 668840956756850124527879832299559696177391050297700824622043\
2675 866382460366020930152337219476058757174016585113549831063750\
2676 560749343236827486905002179231150529681970396017795115367543\
2677 697626587387836076075141284451928300176122499787310671827087\
2678 811887033677814397925059153373881836118105886419378651616798\
2679 592240268616476519445858857179518827325394147075773777729444\
2680 146380220504445359824894865222389302601440729048815894804537\
2681 204733015744064565559548968109597836406827155741056311263299\
2682 722947063908589431715872616727470668964127501101998064669236\
2683 547074458426237111173086536319506989478611558297416195273399\
2685 static const long double ld2c
=
2686 9.7127626791570376663866584373414698287493540070520215145348\
2687 265837955593101861790565265072369149749103838172122152721795\
2688 148808298295738130700276651079589269745641890661270024016251\
2689 019384577076103591727897583309855871833343782567221021062330\
2690 520323854737144092431836545425360063420220465935798468889597\
2691 393404878618618014948930985668173745969857941024624992678516\
2692 796046407897341714914468689706271051039477065250599233051128\
2693 834730700520991768191047336500699552011524055936141175278227\
2694 064109997091342657525775034753507507952039644285302561195715\
2695 206557908066743405503232817530015665644259150328222704419796\
2696 441925506500088029030962482377765030782723392665098962794517\
2697 576730231882534561711832295689196981946271461652617181055665\
2698 029685844922254588158309151172148171793920968125962871768401\
2699 514219388391855549421226044104700106207541829733799638752028\
2700 173330033785725845708464578148564931432318289223948214495353\
2701 081747057754695954292472958266030251293951030611301194357888\
2702 019943253579850479798277589149352414382665544987175298434214\
2703 478200760268387259124784797823102040919106572400856191771348\
2704 281558462777916462381681390008210723234194499857395959685631\
2705 103905591697879596717577715572554824817827584594613762331897\
2706 400606438644266287902006019904862430824505901556613731586390\
2707 168599701978602862986749723963103806767402004526070426607181\
2708 825747922672223610811748401048244356042029124854637072147748\
2709 725579398139682075412513930407121100054336291386326642984001\
2710 127998334974858209653245050832581320436526628590981309844730\
2711 407816586888468434842085594277964816488928181716264953794825\
2712 008820444984449555836465896129531451786104307525226808006600\
2713 779348570662654426040504120543057111107378732433349774914269\
2714 114072708176913318160948697397435213257520066915742989940448\
2715 143697754422357993424629248859049440534892849320746268179914\
2716 554583983135330126247834945300073309752528242351508345806997\
2717 166008883707127049913489117882817860966482186638832168035518\
2718 547034785578194655682192342735350140833854383710286830614088\
2719 160157865037563419851961350527354941108767405900340732309106\
2720 276336035381203764047251096208168592703256215746762632401447\
2721 152692930097455870617179441468393769999033655798513790480379\
2722 006890871305232768065242533442449079450072575765459163647064\
2723 342973773862113844201909366754475759002671807165811771132763\
2724 080642939637475165826471100668049369686467070723571785727451\
2725 880981477281249312246654190920467838735709729099560268987993\
2726 922945108459361151792094263319471761024927851228982814252213\
2727 519491081673366498846956075196529123585663883716590919107614\
2728 633893976419001988983816482034201465056277885540374744476861\
2729 750132141428803822571155963108435657119217200055907192435247\
2730 874999372748282438180554683005862623824642214599119474694103\
2731 960853742166199856978367947235980051781968651483783495342232\
2732 954349909573385979410403141459464534634995394356365919502754\
2733 724946777741899521109008000695745645078551399660814021116536\
2734 655749435948779817814066783795859497355305214492181630929578\
2735 847199238542943651540507599871461279285579624694324361023373\
2736 707531098971698541342280852237066460615431579189178378561194\
2737 172524973953556992919385025122842333469297321105671995800309\
2738 309633498690867723547140713111442746824881534458886302917356\
2739 653091434863492329838352758301829757778933132703869088008094\
2740 675627125816403572843436425276619486609339270853697062497300\
2741 328870997605020552097286001653505594207990557642339328807413\
2742 227100406607755741340441132517749388595948759195317512557878\
2743 416233575616587901198472089121093330999897692799317101600836\
2744 099489460591403665960336872530069816871780920562654935511809\
2745 645452735200740179624950793984014164529466444382558710840503\
2746 646450512405234491455440034942909031078393317704206940370308\
2747 684236835526397150556746599533254593941633896202932393007537\
2748 673266074923116068628384786062194914042771295779439885715389\
2749 357594885989682121213153533215605128333850742639410724967673\
2750 883284678814436067523913854991596587657401966348100597154425\
2751 325485566823423076082201071414803929712348781452793135058870\
2752 492918348933242055431354758500236922407134394398698076450588\
2753 396958158802767825944728350880686237998680915415443167076178\
2754 911739085748840458235337085643267137446973020988327650097647\
2755 165014946264643975815638479556314291101645367935123993093786\
2756 582600438548945848259707843279161086198675408925933600311615\
2757 428118865841645716039791455856756541424710978756200560993332\
2758 887344427373688627922683426869140915164843256020904560951477\
2759 891674986393096433202120538411067908090153863118403925770011\
2760 018063004678778615949475991732024974692553643880962797066439\
2761 850738990118773176131476115230730262123167407320563510551236\
2762 743953710665679470765273617718616108994029022776271817109585\
2763 266594261331597335282139081984596344964057781522191646561827\
2764 550790563823105342889841684791723392119663413065274464824389\
2765 193009710215891507033131686963884367885455869616509038575859\
2766 401565845913422314243208408202380488923480307905914026187792\
2767 173761338231822535262836663234810324357814170469665216751909\
2768 358778546855365681180620451075947932208061785930047186745864\
2769 869465034307360299821666637866586258459810085040702059082829\
2770 751567542893449238034641018001458509309792474567933738149575\
2771 554449108144820908702151811237205173697690115303153085234681\
2772 514152955272511661522989847510493796115116064878740702806004\
2773 343433164318094216952115530098938898426308252149645340589562\
2774 644869225768357954631994812409839231441980355794430127694896\
2775 896491616863512720318746239544591731455028723849548933141295\
2776 953669192660989415044776894176322467844855976195199023921936\
2777 699427841174911239593401205926299751407204361412696320213363\
2778 304107778816937724874521837448233888318479329375321435968913\
2779 261660516526419532347019419540663257128411929128403012569143\
2780 516560220706745585698808432508320490642705990501525005042508\
2781 275152136114303501571602916305930838603123093402367005177263\
2782 895812313295965866584099164896749137750449430252650456393558\
2783 866481394042988928722749344174035609284576107405441387577215\
2784 111650422217580504962998404223989353315671519700308885487441\
2785 513727141662624359402989615511685507459107087446822399682449\
2786 124027371539629961321880337101198819624529636970480400208723\
2787 642799448540704293456340205242051084761997006863111517147530\
2788 365332128784516968162146751508776010231492748374862213804161\
2789 453894620976763957492805125680148697998824491969672971166027\
2790 180656446801877171069880212083821586527774381471938887462267\
2791 296899230122475689865309301760858111386017280236814433190859\
2792 056775862835626324841690460105276503738155096364862500284444\
2793 534355852480049710328635489743555059728455908589253208618030\
2794 435328529902401798471113159138000614546932833170782820217007\
2795 280555759644239993454255391040403122345898223865007840565901\
2796 568897868969477318635101744807938902538658059188203743585010\
2797 774036188072258210874395280659266831769875140840386730345127\
2798 896213224531135734216598150684561709935188763611823258429535\
2799 949485724798457980490432226268479100942840366849845718310701\
2800 201469881667256363013936740095127208213646187168979882123038\
2801 233894681808950467950348320835221712924541137611086830583320\
2802 322392848230358837873140824038588941813883882580818470592924\
2803 936150343266633985142843655469994569073421029983930187839673\
2804 231304118378435528853547015678271557689994924601344298390228\
2805 619544093746214985249883379160686079281428516645627300822824\
2806 554858971061164154855964833723337825341913008711122841606297\
2807 197473771096334331602524570534960013696483960191358924434313\
2808 204392666956909347275363383898878667630642018321060515094118\
2809 366254498987167810320495485827416968962224010263497699545330\
2810 700657309536605222308797502818350426296399499436888453557895\
2811 867230278273510526890091559230412097455704458315552197774216\
2812 020745527743626346151485239632739221842741175405177684804394\
2813 361711074487719586587230018764876415713150171856819389147341\
2814 275669916553647687850492420266494611267030777224588709818335\
2815 130470138515564128370191474596569064918407585797604709553556\
2816 153119278534086702508240133812429162630997831448842506314109\
2817 096085389961648575948522991756162744630412635636848292144248\
2818 454353112463327392007249690205303145102507449765353317125075\
2819 809869430616460927871568186526610739964782640547967178516125\
2820 405550545621289728437343949195632975960067100886025662262995\
2821 603152291369500371247077545422478193737712990735596074413987\
2822 957973881092036286428057398201980915642421361590996553421555\
2823 316064082532807274813471773535367399675092780772709495672695\
2824 638383696748260197644726786065705886850676921416175143972878\
2825 598022936105171100945812789025606978738223958028881794991460\
2826 717838828707859620282931646221494189728518355751185688156172\
2827 707197545186901278242225037114294367925941035155563079724640\
2828 691338994542267517327767311818967695636738982145621453404681\
2829 597847179517622202885989672690265113711173934611717946823228\
2830 397269027374612101610291381645684907000127191954606896606821\
2831 590588324712918734294575638459194809203005860495067520818982\
2832 501215535430594372806160514507726395270189393064661968830908\
2833 304247420614491691520206185072149333329597584485319840857460\
2834 265175822272362267526401706014494934473630591895417261120077\
2835 133201893929459989521012503630498808303587706658289229523671\
2836 490086823643677193804640968971899497667525177372180606601357\
2837 946053731548464954766765148914121287985119918483345042934824\
2838 921516525874627647509368638818236001368121865230049945146050\
2839 915400988318811431699646592683887426055545037715235200928093\
2840 246677400833057921544547343859646810337159831128073581305667\
2841 357013148110868411733638100650377414586379725851070828342144\
2842 324871613425390515134466319365812090990461348903165220975937\
2843 942087587710809288871423718310748650171330836567440569630410\
2844 158371483868179555733183389141963880079090211810793589559200\
2845 341349405637234489991011938576106350455389513465949915412344\
2846 095068082292812278313616014687263054439671001595898696547120\
2847 071413092106692303936769895441754991768984405737441179222392\
2848 477690507985618624574174635988619556351531961292903622442398\
2849 465808497855672165108657385643858675294859076016771263488980\
2850 522695116051395273941662616850391834541635202685385855278463\
2851 251898869471939032633039670027544098536117464245519928068578\
2852 059287479506611827627630303758606108821427100635428077686167\
2853 838877563228833937206563827108338906357929116383562352410405\
2854 819098609305801465027923966325234651981390511492536734174727\
2855 254390774950693797823728058324006157763280570016526212182043\
2856 359093899236806643141856753863283409843786902795368575137111\
2857 428715987789800161590594633948264245607103000992774452293895\
2858 095821092685830313673954662073218494688153180395906146506745\
2859 561411975629305038852550421137841068003638882161156093692580\
2860 530194161044123524750036105635809277947168629873067749519842\
2861 957433509350316508339628224443809642374220084876711715865698\
2862 238309708050571369447923974325750197314968509790081061483804\
2863 453550810603239090298082506325805730097187923044635197024326\
2864 966746334305257051886113456387761013622870382593208533889592\
2865 238925214891289068690048585049758987775121620114117517878005\
2866 875020040085404765102967971726139392362711332104766149529294\
2867 277730971232752039868784363740304437529370880909321409176692\
2868 668840956756850124527879832299559696177391050297700824622043\
2869 866382460366020930152337219476058757174016585113549831063750\
2870 560749343236827486905002179231150529681970396017795115367543\
2871 697626587387836076075141284451928300176122499787310671827087\
2872 811887033677814397925059153373881836118105886419378651616798\
2873 592240268616476519445858857179518827325394147075773777729444\
2874 146380220504445359824894865222389302601440729048815894804537\
2875 204733015744064565559548968109597836406827155741056311263299\
2876 722947063908589431715872616727470668964127501101998064669236\
2877 547074458426237111173086536319506989478611558297416195273399\
2878 35302734375001e-4966L;
2879 /* 0x1.00000000000000000000000000008p16383 */
2880 static const long double ld3ae
= 0x1p
16383L, ld3be
= 0x1p
16383L, ld3ce
= 0x1.0000000000000000000000000001p16383L
;
2881 static const long double ld3a
=
2882 5.9486574767861588254287966331400362266521016077566321470782\
2883 537912717956830282749074200158904838100315216442070246474582\
2884 902003466452178519493817532236893426065414065500349426609921\
2885 035191682920005861156266113904955955975156868485667432573303\
2886 878926292023832306985858165533616318247459636179261303962505\
2887 904914506095247123433601806274279678546351097459236573913920\
2888 031119173565521719790447288258729779003490433862818295682642\
2889 966216118764004792730459319737327354906008978235133081179386\
2890 661103577408353480771246949457853166617701522167422003413661\
2891 284349262437896929014552545611813747697933241007066137144800\
2892 742052491919942298834913628182656296203230288447275444631994\
2893 418174246363265098248611943128819168942591708210157385631417\
2894 956400560296628065072016801065604053356267458749418972817500\
2895 860163920552394032596390414022010839803056885484295371329659\
2896 344624001094572196271168792142488910586863048428263135994222\
2897 918660801863635503541746352435642903327106245556596971697306\
2898 154375736529491499973297647239267168544491542059174479409314\
2899 453930981788080813637734358380528957486229480817553751111130\
2900 404254432007093360403147894746265072027252334199618554793914\
2901 408408563073872776198001518686536858983411123156743992398602\
2902 085226973929708268146742705557350571330511483380748376403472\
2903 416543579901056379914358020396036857647833383066531875675143\
2904 906511120597222727322243981995901699031025427175941279288823\
2905 868963521340475095965307606235778429805072284801680535137734\
2906 383642104178041358430293569208331406005130704155581295151191\
2907 023575851522079817808333970280354640050199344622016227349001\
2908 158400930280667186488774262251890453600109065837537684194570\
2909 764422774923245437306731669764159584659798151950637627762794\
2910 773771743234047950402370403351226180108444229650943701626484\
2911 199813157683590670152514287926030050893275989087988431157294\
2912 053225152320381185461962202878894704210605536874860744635921\
2913 856800920799848781308318732102232154544901177747472418520161\
2914 539850654183977571241391795912749098112352006092865789718049\
2915 308722403022684428414862730635213534446271587083620368851394\
2916 539053886621230946713996355227159995125430034494483477708852\
2917 290917108703653719242299789100268057863851224567265334616704\
2918 172517852701300018859009181286438758473871366303386211559752\
2919 189988549719766361306120241141163757479824826687017385967199\
2920 730649217746155593260923125994938678356692052428393066501806\
2921 030161358556419313420716683771612548240263459903320490075985\
2922 482955242306590857238462197972208846146747634114611463194143\
2923 127229709932188005016692926586196070737427116881065809283735\
2924 578248117685225847553587906225824731173075427424421056682930\
2925 008434666477496431516691881829440430197100204332606435934395\
2926 919650053069892524027974091575173698894803107552411683630872\
2927 565514028274910395383420510115859479233531504702656455261624\
2928 525121293886827716275308028935388238178963278225114817400178\
2929 138358373030159940110845417191798464503817960506134575572552\
2930 914585335913528444536373142082490326061583126796147603336390\
2931 503084982226891516248370317420733394038771780044922478150880\
2932 480334844447412365553656029955296322473008695074712792828366\
2933 405738282245039545396582938290818627301780773130202921675326\
2934 417583673495241569334204568141534153408474297319168484568799\
2935 451491133718839097374713416523361939237171154953070144389353\
2936 699828605993755613252573941610133829557167740458222617685028\
2937 690018342727148122013513056358815140027414679795450105000784\
2938 206522215604435223172005007036171570530334304897008809135848\
2939 675229547083561399988252552429769084290516103080260036003448\
2940 294799988351419108088251107290628711358276092795741489822211\
2941 879153727229891058795497426373608319405317602924241055836665\
2942 412584135657242160003706626205312971822953452930840783143003\
2943 733239017808969394445195220787737174218027747221253900890536\
2944 730326425051240764874006627032589076376990325467270006751475\
2945 463920721323985366812116303998245085483206258613663624851716\
2946 293180303624443281556295689730668616708901429287181381627670\
2947 203893651414675005136379365959571811951919653635887567699289\
2948 348324076406793991923217469674198904524716009847788439650157\
2949 995310043698774137542541699134940585662745702625097983274489\
2950 141416414789061652098131796728731652650516767112149192122453\
2951 562328802846445391417036742140146906572447511494124473885963\
2952 235217227016424204095604485308686968373890645296189932416571\
2953 281295736247619241329068636405743573306087991776733585972793\
2954 132869616481671565021096885870153734254648327143225051745267\
2955 530463119926261147612098111086806545372953526471421579845285\
2956 862975776235466663857936867536855924718593170503922894779577\
2957 706239977813334283740751103082483280516469722321753891088699\
2958 714361755511843803441649441302693703577359971743834932539197\
2959 595873998629500074441134301810890941848881837426270390549007\
2960 490141375766653241037340192392236932759127069111401216220596\
2961 540958515892047794438580629374176225297401789362125586732528\
2962 367695144980519774116001979888033796577336271850743828263427\
2963 598863925843301048044096576340652808516459551933515596083641\
2964 0468395384831999e+4931L;
2965 static const long double ld3b
=
2966 5.9486574767861588254287966331400362266521016077566321470782\
2967 537912717956830282749074200158904838100315216442070246474582\
2968 902003466452178519493817532236893426065414065500349426609921\
2969 035191682920005861156266113904955955975156868485667432573303\
2970 878926292023832306985858165533616318247459636179261303962505\
2971 904914506095247123433601806274279678546351097459236573913920\
2972 031119173565521719790447288258729779003490433862818295682642\
2973 966216118764004792730459319737327354906008978235133081179386\
2974 661103577408353480771246949457853166617701522167422003413661\
2975 284349262437896929014552545611813747697933241007066137144800\
2976 742052491919942298834913628182656296203230288447275444631994\
2977 418174246363265098248611943128819168942591708210157385631417\
2978 956400560296628065072016801065604053356267458749418972817500\
2979 860163920552394032596390414022010839803056885484295371329659\
2980 344624001094572196271168792142488910586863048428263135994222\
2981 918660801863635503541746352435642903327106245556596971697306\
2982 154375736529491499973297647239267168544491542059174479409314\
2983 453930981788080813637734358380528957486229480817553751111130\
2984 404254432007093360403147894746265072027252334199618554793914\
2985 408408563073872776198001518686536858983411123156743992398602\
2986 085226973929708268146742705557350571330511483380748376403472\
2987 416543579901056379914358020396036857647833383066531875675143\
2988 906511120597222727322243981995901699031025427175941279288823\
2989 868963521340475095965307606235778429805072284801680535137734\
2990 383642104178041358430293569208331406005130704155581295151191\
2991 023575851522079817808333970280354640050199344622016227349001\
2992 158400930280667186488774262251890453600109065837537684194570\
2993 764422774923245437306731669764159584659798151950637627762794\
2994 773771743234047950402370403351226180108444229650943701626484\
2995 199813157683590670152514287926030050893275989087988431157294\
2996 053225152320381185461962202878894704210605536874860744635921\
2997 856800920799848781308318732102232154544901177747472418520161\
2998 539850654183977571241391795912749098112352006092865789718049\
2999 308722403022684428414862730635213534446271587083620368851394\
3000 539053886621230946713996355227159995125430034494483477708852\
3001 290917108703653719242299789100268057863851224567265334616704\
3002 172517852701300018859009181286438758473871366303386211559752\
3003 189988549719766361306120241141163757479824826687017385967199\
3004 730649217746155593260923125994938678356692052428393066501806\
3005 030161358556419313420716683771612548240263459903320490075985\
3006 482955242306590857238462197972208846146747634114611463194143\
3007 127229709932188005016692926586196070737427116881065809283735\
3008 578248117685225847553587906225824731173075427424421056682930\
3009 008434666477496431516691881829440430197100204332606435934395\
3010 919650053069892524027974091575173698894803107552411683630872\
3011 565514028274910395383420510115859479233531504702656455261624\
3012 525121293886827716275308028935388238178963278225114817400178\
3013 138358373030159940110845417191798464503817960506134575572552\
3014 914585335913528444536373142082490326061583126796147603336390\
3015 503084982226891516248370317420733394038771780044922478150880\
3016 480334844447412365553656029955296322473008695074712792828366\
3017 405738282245039545396582938290818627301780773130202921675326\
3018 417583673495241569334204568141534153408474297319168484568799\
3019 451491133718839097374713416523361939237171154953070144389353\
3020 699828605993755613252573941610133829557167740458222617685028\
3021 690018342727148122013513056358815140027414679795450105000784\
3022 206522215604435223172005007036171570530334304897008809135848\
3023 675229547083561399988252552429769084290516103080260036003448\
3024 294799988351419108088251107290628711358276092795741489822211\
3025 879153727229891058795497426373608319405317602924241055836665\
3026 412584135657242160003706626205312971822953452930840783143003\
3027 733239017808969394445195220787737174218027747221253900890536\
3028 730326425051240764874006627032589076376990325467270006751475\
3029 463920721323985366812116303998245085483206258613663624851716\
3030 293180303624443281556295689730668616708901429287181381627670\
3031 203893651414675005136379365959571811951919653635887567699289\
3032 348324076406793991923217469674198904524716009847788439650157\
3033 995310043698774137542541699134940585662745702625097983274489\
3034 141416414789061652098131796728731652650516767112149192122453\
3035 562328802846445391417036742140146906572447511494124473885963\
3036 235217227016424204095604485308686968373890645296189932416571\
3037 281295736247619241329068636405743573306087991776733585972793\
3038 132869616481671565021096885870153734254648327143225051745267\
3039 530463119926261147612098111086806545372953526471421579845285\
3040 862975776235466663857936867536855924718593170503922894779577\
3041 706239977813334283740751103082483280516469722321753891088699\
3042 714361755511843803441649441302693703577359971743834932539197\
3043 595873998629500074441134301810890941848881837426270390549007\
3044 490141375766653241037340192392236932759127069111401216220596\
3045 540958515892047794438580629374176225297401789362125586732528\
3046 367695144980519774116001979888033796577336271850743828263427\
3047 598863925843301048044096576340652808516459551933515596083641\
3048 0468395384832e+4931L;
3049 static const long double ld3c
=
3050 5.9486574767861588254287966331400362266521016077566321470782\
3051 537912717956830282749074200158904838100315216442070246474582\
3052 902003466452178519493817532236893426065414065500349426609921\
3053 035191682920005861156266113904955955975156868485667432573303\
3054 878926292023832306985858165533616318247459636179261303962505\
3055 904914506095247123433601806274279678546351097459236573913920\
3056 031119173565521719790447288258729779003490433862818295682642\
3057 966216118764004792730459319737327354906008978235133081179386\
3058 661103577408353480771246949457853166617701522167422003413661\
3059 284349262437896929014552545611813747697933241007066137144800\
3060 742052491919942298834913628182656296203230288447275444631994\
3061 418174246363265098248611943128819168942591708210157385631417\
3062 956400560296628065072016801065604053356267458749418972817500\
3063 860163920552394032596390414022010839803056885484295371329659\
3064 344624001094572196271168792142488910586863048428263135994222\
3065 918660801863635503541746352435642903327106245556596971697306\
3066 154375736529491499973297647239267168544491542059174479409314\
3067 453930981788080813637734358380528957486229480817553751111130\
3068 404254432007093360403147894746265072027252334199618554793914\
3069 408408563073872776198001518686536858983411123156743992398602\
3070 085226973929708268146742705557350571330511483380748376403472\
3071 416543579901056379914358020396036857647833383066531875675143\
3072 906511120597222727322243981995901699031025427175941279288823\
3073 868963521340475095965307606235778429805072284801680535137734\
3074 383642104178041358430293569208331406005130704155581295151191\
3075 023575851522079817808333970280354640050199344622016227349001\
3076 158400930280667186488774262251890453600109065837537684194570\
3077 764422774923245437306731669764159584659798151950637627762794\
3078 773771743234047950402370403351226180108444229650943701626484\
3079 199813157683590670152514287926030050893275989087988431157294\
3080 053225152320381185461962202878894704210605536874860744635921\
3081 856800920799848781308318732102232154544901177747472418520161\
3082 539850654183977571241391795912749098112352006092865789718049\
3083 308722403022684428414862730635213534446271587083620368851394\
3084 539053886621230946713996355227159995125430034494483477708852\
3085 290917108703653719242299789100268057863851224567265334616704\
3086 172517852701300018859009181286438758473871366303386211559752\
3087 189988549719766361306120241141163757479824826687017385967199\
3088 730649217746155593260923125994938678356692052428393066501806\
3089 030161358556419313420716683771612548240263459903320490075985\
3090 482955242306590857238462197972208846146747634114611463194143\
3091 127229709932188005016692926586196070737427116881065809283735\
3092 578248117685225847553587906225824731173075427424421056682930\
3093 008434666477496431516691881829440430197100204332606435934395\
3094 919650053069892524027974091575173698894803107552411683630872\
3095 565514028274910395383420510115859479233531504702656455261624\
3096 525121293886827716275308028935388238178963278225114817400178\
3097 138358373030159940110845417191798464503817960506134575572552\
3098 914585335913528444536373142082490326061583126796147603336390\
3099 503084982226891516248370317420733394038771780044922478150880\
3100 480334844447412365553656029955296322473008695074712792828366\
3101 405738282245039545396582938290818627301780773130202921675326\
3102 417583673495241569334204568141534153408474297319168484568799\
3103 451491133718839097374713416523361939237171154953070144389353\
3104 699828605993755613252573941610133829557167740458222617685028\
3105 690018342727148122013513056358815140027414679795450105000784\
3106 206522215604435223172005007036171570530334304897008809135848\
3107 675229547083561399988252552429769084290516103080260036003448\
3108 294799988351419108088251107290628711358276092795741489822211\
3109 879153727229891058795497426373608319405317602924241055836665\
3110 412584135657242160003706626205312971822953452930840783143003\
3111 733239017808969394445195220787737174218027747221253900890536\
3112 730326425051240764874006627032589076376990325467270006751475\
3113 463920721323985366812116303998245085483206258613663624851716\
3114 293180303624443281556295689730668616708901429287181381627670\
3115 203893651414675005136379365959571811951919653635887567699289\
3116 348324076406793991923217469674198904524716009847788439650157\
3117 995310043698774137542541699134940585662745702625097983274489\
3118 141416414789061652098131796728731652650516767112149192122453\
3119 562328802846445391417036742140146906572447511494124473885963\
3120 235217227016424204095604485308686968373890645296189932416571\
3121 281295736247619241329068636405743573306087991776733585972793\
3122 132869616481671565021096885870153734254648327143225051745267\
3123 530463119926261147612098111086806545372953526471421579845285\
3124 862975776235466663857936867536855924718593170503922894779577\
3125 706239977813334283740751103082483280516469722321753891088699\
3126 714361755511843803441649441302693703577359971743834932539197\
3127 595873998629500074441134301810890941848881837426270390549007\
3128 490141375766653241037340192392236932759127069111401216220596\
3129 540958515892047794438580629374176225297401789362125586732528\
3130 367695144980519774116001979888033796577336271850743828263427\
3131 598863925843301048044096576340652808516459551933515596083641\
3132 0468395384832001e+4931L;
3135 extern void abort (void);
3136 extern void exit (int);