#!/usr/local/bin/ocamlrun T)*VD C 2" @(()*c( ` 5?[o n2$ ] 5?[] h `c]c(m] mh `cY 2!"Z(6 CyV(]()* ^()* ^()* ^()* ^(](]()* ^(](](](]I()* ^(](](]()* ^(c!](cC%c!c%C +I(]](c!](c!]L(]%g ^]("g ^](!&!&&^(g ^]("g ^(!&!&&^()* ]n}V5 % $)* ]n}V5 % `(h6 'h6')* _](]]()*c _()* ]n}V5% `()*]h `(l6'l6')* _](6^(6^M(5 ^V5 ^V5%d(c(V5(5(5%()*] ] n] h ha ha(g u((m()* ^V(()* ^V((6@[6@[+ +6? + + + +livgTg>iv 6]>6]>6]> +j +T +E +' + + ,c]i]j] + + + ++ + + +{ +o +d+? ,!+,+ + + +++++++}+h+Y +I +> +3+$? + + +  + + + + + + + + #! +)(* +. +u +l +`3 +Q +D79 +3 +)?>@&(*,.02468:<>@BRTVXZ\^`bdfhjnnnrtvzzz>G79T)*V D 2&()*|V  $eq o  n n2  n2  n n$ )*c TC\ n^ n? T\C^ C_ C~V  C^"c C_ |Uc()* "._ {V ^2$ o$ _ {V ^ 2$ o$ )* nn  , ^^$)* + + ,O |V hh$ e q oh^ ^  h   h c h $)* " ^"^ _ 2' _()*Y #Z( CyV D _()* " ^ _ 2&)*f q zVcT56 @[ ^"^ _ 2&h_( _()*Y"Z( CyVD ()* nn ? {V0^ ^"h}V I^ C^"h}V IC( {V^ ^"( {V(@[)* + ,,, +\,Ok qh T\ ^  # ~Ucj T \ ^h ^  _h"" ~Uci{Vd ^h ^i _h _( )*? Oh T\C ^ " I ~UcC()*?hO T\^ C" I |UcC()*VD C _  2&(VD C h"^ ,i &:()*( ^ @ 2&,c O &)*O :(c ^ h " ^ i  T\^ " _  |Uc()*c O T\^ " |Uc()*O :(c ^ ! ^ i  T\^ ! _  |Uc()*c O T \^ ! |Uc()*O n}U  On}V5 8% {V"h T\n ^ n_  ~Uc(c T\n ^ n_  |Uc()*  O n}V5!8% n T \ _  |Uc()*  O n}V5"8%:( ^ ^ i T\n^ _  |Uc(VD C O h ^ &2%:(, %)*V D C On2&()*V-D Ch O T\ ^ n_  |Uc On2&c()*, h "^ ,h "()*O O :(c T^ n^ h  T\^ _  |Ucc  T\^  n_  |Uc(O :(c ^ ^ i  T\^ _  |Uc()*: ^ h  T\^ Q |Uc()*:(c ! ^ i  T\! _  |Uc(+ + +p + + + +- + + +_ +$ + + + ,+v +0 +6#? +al  +  !$&(>9$T)*V D 2&()*VD C ( 2&5%8%5&8%)*V D C @ 2&(VD C 2! 8&c()*VD C ! 2" @(c()*V D C ! 2&c()*VD C "2'()*VD C 2# &()* VVD C DC "  2# @( Uc(5'8%)* VVD C DC " 2' Uc(5(8%)* VVD C DC    # 2$U(5)8%)* VV!D C DC    2   ' U(5*8%)*VD C !V 2&(d()*VD C !U 2&(c()* VVD C DC "V 2' ( Ud(5+8%)* VVD C DC "U 2' ( Uc(5,8%)*VD C ^U 2&(c()*VD C yU 2&(c()*VD C D C ^V(2&5?[)*VD C D C yV(2&5?[)*VD C C ^U2&(c()*VD C C yU2&(c()*VD C C ^V(2" @(c()*VD C C yV(2" @(c()*VD C !V( 2&5?[VD C D C 2! D C @ @@(5-()* VVD C DC 2" @@(Uc(5.8%)*8$ ! 8$"%)*( yV^  ^@2' ^@2'O , h ')*VD C !V  @2' @2'! !@()*,hh ')*VD C !V  @2& 2&%,c %)* VVD C DC "@2' U(5/8%)*, h ')*VD C !@2&()*,h &c &VD (508%VC (518%h&,Z+ + + ,[7 ,}+ , ,+ ,,,,+e ,,,,W,,,,,,,2,O,k,,,,+ + ,,+l +"  !#%')+.0/358:9>>BDCGIKM>')92Taz ((AZ  ((& 53(54(' \ 55(56(]V d] h S(l]l\h Sgd ql0ni Sg l qrl0nj Sg rl0nk S(578%(+ + +c +? >98T)* ~V5?[ RyV(  2$)*5?[ RyV(  2')*h ')*] ~V598%Y #cdZ(6 CyVc()*] }V5:8%Y   ]  cdZ(6 CyVc()*] ~V5;8% ')* ] ')*] }V5<8% ] $)*h ] $88&88&)*](!h R !h S(88&88&)*] (]h  T\R! S |Uc(c?h ] T=\R  "\ ]VdTgT T T TTe Cn I |Uc] CyV(C]h Ic ] T\R !+  ;g\CSgnCSTog\CSgtCST^"\g\CSCSTF ]VCST7l\CSgd ql0nCSg l qrl0nCSg rl0nCS |Ucc(]Cha]CnI]Cha]CnI(]CnI()*V?D Ch?h? +82 "C]p Cn] ]h ha]?  +82 "(5=()*] n}U ]n}V5>8%a()* ] n}V5?8% `()* ] n}V5@8%] h a(] ] h ha()*] h `(+ + + + +T + + + + +w+Y +M +B ,>+- + ,R+ ++ +i +\     "$&>9ATZ)*! 82! D!8 " 82! C2"8 &5B(8!c8%5C 5D( " ] ]i 8A'5E(gdl rql ld rql r Alq@(E D C !T ! !8 " 5F !8 "T5G8 & ?[W "&*.5H(5I(5J(5K(5L(5M(5N(5O(5P(5Q( 2W ."&*5R(5S(5T(5U(5V(5W(5X(5Y(5Z(?[ ?[W "&*.5[(5\(5](5^(5_(5`(5a(5b(5c(5d(5e? + + +> + + ,+6f 82 " +82 "   >9gc8F!:9halloc_dummyupdate_dummyarray_get_addrarray_get_floatarray_getarray_set_addrarray_set_floatarray_setarray_unsafe_get_floatarray_unsafe_getarray_unsafe_set_addrarray_unsafe_set_floatarray_unsafe_setmake_vectmake_arraycompareequalnotequallessthanlessequalgreaterthangreaterequaloutput_valueoutput_value_to_stringoutput_value_to_bufferformat_floatfloat_of_stringint_of_floatfloat_of_intneg_floatabs_floatadd_floatsub_floatmul_floatdiv_floatexp_floatfloor_floatfmod_floatfrexp_floatldexp_floatlog_floatlog10_floatmodf_floatsqrt_floatpower_floatsin_floatsinh_floatcos_floatcosh_floattan_floattanh_floatasin_floatacos_floatatan_floatatan2_floatceil_floateq_floatneq_floatle_floatlt_floatge_floatgt_floatfloat_of_bytesclassify_floatgc_statgc_countersgc_getgc_setgc_minorgc_majorgc_full_majorgc_compactionhash_univ_paraminput_valueinput_value_from_stringmarshal_data_sizeint_of_stringformat_intint32_negint32_addint32_subint32_mulint32_divint32_modint32_andint32_orint32_xorint32_shift_leftint32_shift_rightint32_shift_right_unsignedint32_of_intint32_to_intint32_of_floatint32_to_floatint32_formatint32_of_stringint64_negint64_addint64_subint64_mulint64_divint64_modint64_andint64_orint64_xorint64_shift_leftint64_shift_rightint64_shift_right_unsignedint64_of_intint64_to_intint64_of_floatint64_to_floatint64_of_int32int64_to_int32int64_of_nativeintint64_to_nativeintint64_formatint64_of_stringint64_bits_of_floatint64_float_of_bitsnativeint_negnativeint_addnativeint_subnativeint_mulnativeint_divnativeint_modnativeint_andnativeint_ornativeint_xornativeint_shift_leftnativeint_shift_rightnativeint_shift_right_unsignednativeint_of_intnativeint_to_intnativeint_of_floatnativeint_to_floatnativeint_of_int32nativeint_to_int32nativeint_formatnativeint_of_stringcaml_open_descriptorchannel_descriptorcaml_close_channelcaml_channel_sizecaml_set_binary_modecaml_flush_partialcaml_flushcaml_output_charcaml_output_intcaml_output_partialcaml_outputcaml_seek_outcaml_pos_outcaml_input_charcaml_input_intcaml_inputcaml_seek_incaml_pos_incaml_input_scan_linelex_enginemd5_stringmd5_changet_global_datareify_bytecoderealloc_globalavailable_primitivesget_current_environmentinvoke_traced_functionstatic_allocstatic_freestatic_resizeobj_is_blockobj_tagobj_blockobj_dupobj_truncateparse_engineinstall_signal_handlerml_string_lengthcreate_stringstring_getstring_setstring_equalstring_notequalblit_stringfill_stringis_printablebitvect_testsys_exitsys_opensys_closesys_file_existssys_removesys_renamesys_chdirsys_getcwdsys_getenvsys_get_argvsys_system_commandsys_timesys_random_seedsys_get_configterminfo_setupterminfo_backupterminfo_standoutterminfo_resumeregister_named_valueweak_createweak_setweak_getweak_get_copyweak_checkfinal_register2-Out_of_memory)Sys_error'Failure0Invalid_argument+End_of_file0Division_by_zero)Not_found-Match_failure.Stack_overflow.Sys_blocked_io.Assert_failure,really_input%input@F@@G@&outputACDF@ACDG@%%.12g"%d%false$true.bool_of_string$true%false+char_of_int/Pervasives.Exit(((@(array.ml*Array.blit*Array.fill)Array.sub,Array.Bottom@(List.nth#nth)List.map2*List.iter2/List.fold_left20List.fold_right2-List.for_all2,List.exists2@@,List.combine-List.rev_map2"tl"hd@"\n"\t"\\"\'(Char.chr@5String.rcontains_from4String.contains_from2String.rindex_from1String.index_from +String.blit+String.fill*String.sub@ ) thousand( million( billion@$zero ( hundred $ ten' eleven' twelve) thirteen) fourteen( fifteen( sixteen* seventeen) eighteen) nineteen ' twenty' thirty' fourty& fifty& sixty( seventy' eighty' ninety $ one$ two& three% four% five$ six& seven& eight% nine7Numtostring.Illegal_num@AM{: "y?@@@O7i@@%ArrayAd@A@$CharAx@@$ListAr@@+NumtostringAg@ABC@*PervasivesA^@@(Std_exitAh@A@&StringAA@O-Match_failureAG@ABDP-Out_of_memoryA@@Q0Invalid_argumentAC@AR'FailureAB@S)Not_foundAF@AT)Sys_errorAA@BCU+End_of_fileAD@V0Division_by_zeroAE@AW.Stack_overflowAH@X.Sys_blocked_ioAI@Y.Assert_failureAJ@ABCDECODEaPPRIM oDATASYMBcCaml1999X006