>>+++++++)))+)+)))))))))))))))))))))))))))))+>>????????>>>>?>>>>>>>>>>>>>>>>>>>>
>>++)**!;;;;!:!:::::::::----:--;::;!!!:--~~~-;!)?=&$$$#$$&&%%=?>>++++)))))))))))
>+++)*!!;;:;!:;::::---------:--*?%%==%%?):~~~--~;:;*>=&$$$%=>+)**!!!!;;;;;;;!!!!
>+++)*!!;;::;:;::::---------:-;?$&&$&%=%%%)-~--~:-~~~-:!**;;;:::;:;;::::::::::::
>>++)*!!;;::;:;::::---------:-;&###$$$$%%&&=---~:-~~~~~~~~---~----:;------------
>>)+)*!!;;::;:;:------------:-;%$$$&&&$#&%&$?:-~:-~~~~~~~~~--~----::------------
>>)+)*!!;;::;:;:------------:->?%?+*!!)?&&=&$>-~:~~~~~~~~~~~-~~--~::------------
>>))**!;;;::;-;:------------:;==?!-~~-:;)=%=&&:~:-~~~~~~~~~~~~~--~::------------
>>))**!;;:::;-:-------------:+=%)~^^~-::!+%=%&)~-~~~~~~~~~~~-~~--~--------------
+>)+)*!!;:::;---------------;??%^,~~---:;)%&=&>~~~~~~~~~~~~~~~~-~~~~~-----------
++)+**!;;::-;-::------------)?=),^:*;--:;)%$%&%--~~~~~~~~~~~-~~-~~--------------
+>))*!!;;::-;-::----------~-?>=:^*==>::*>%&#&&&;:~~~~~~~~~~~~~~-~~:-~~~---------
+>))*!!;::--;-:-----------~!=>?~~:)>)-!=&###$&&*:~~~~~~~~~~~~~~-~~:-~~~~-------~
+>))*!!;::--:-:------------*=>=~^-::-^*>)?%$#&&+:~~~~~~~~~~~~~~-~~:-~~~~~-------
+>))*!!;::--:-:-----~~~~~~-*=>=-,~-:~^*+;*>$$&&+;~~~~~~~~~~~~~~~~~:-~~~~~~------
+>))*!!;::--:-:----~~~~~~~-;?>%;^:!;^~*>**?$&$$+!~~~~~~~~~~~~~~-~~:-~~~~~~~-----
+>))*!!;::--:-:-~-~~~~~~~~~:>>%*~;*--;>=?>%$&$&)!~~~~~~~~~~~~~~-~~:-~~~--~~----~
+>))*!!;::--:-:-~--~~~~~~~~->+%?~~-::!+%>=$&%&&+!~~~~~~~~~~~~~~-~~:-~~---~-----~
+>))*!;;::--:-:---~~~~~~~~~->>%=!^^~!)>+?$$&=$&>!-~~~~~~~~~~~~~-~~:-~~----------
>)))*!;;;:::;-:---~~~~~~~~~-)?%?!-^-:!*>$$%%=$&>!-~~~~~~~~~~~~~~~~;-~~----------
>)++*!!+;:-~~~-!*--~~~~~~~~-!>%>-~~:!*>$$%=%=$$=;-~~~~~~~~~~~~~~~~:-~-----------
>)++?%%#$@###@@@)-~~~~~~~~~-;+>-~~-!+?%$=>>%?#$&!-~~~~~~~~~~~~~-~-;-~-----------
>)+!;;?%+?===%%=)~~~~~~~~~^~!;:^~~:!**?$?>+??#$$%!-~~~~~~~~~~~-:~-;-------------
>))~;!?&*!!;!==$)-~~~~~-:!);:~^^~~:!;*?%=+++=$$$&&=!~~~~~~~~~^-:^:!:-----------~
>)*~!)>%!+>>++>?*~~--;+%$##>--~~--:-:)>>++)+=%%%%%%%+-~~~~~~~^-:~:!:------------
?):~~)>$?++>+??=*--;%$#####$?)!!!;:-:!!)*>>>??==%%%&&>-~~~~~~~-:-:!:------------
?+-^:!>$=?=??>==!-:%########$$$##$$$$###=#%%>???%%&$$&+-~~~~~~-:-:;:------------
=>:~~;?#%%====&$!-+$##########$#########=#&&>>===&&$$&=!~~~~~~-:-:;:------------
=?+-:>&@@@####@@!:=############$$$######%#$&%??%%%%&&&&+-~~~~~-;-:;:------------
==?+**+&@@#@@@@#;;&##$#########$#$$$####$$#&##=?%%&&&&$?:-~~~~:;::;:------------
%=?>)***?&$##$%*-*$#$$###########$$$#####$###@$&%&$&&&#=;-~~~-:;;:;::-----------
==?+)**::;+=+;;;:)$#$############$#$####$######%%&&&&&#&:----::;!;!::-----------
==?+)**;--*$=:;::+$##@##############$$########$%%&%&&&#%;----:;;!;!::-----------
==?+))*+>%#@#!;::>#@@###%!)>*>**?**+)!!==?=%%&&$=&&&$%#$;----;;;!;!::---:::---:-
==?+))))$##@@?;::=##@##$>*?!))!)+!!:!:)??>=%=%%#%%%%$%$#:----;;;!;!:::---::::::-
==>+)))*?###@#+;;&#@##$$>!*!**!*+!!;!::=#=>??#@@$%%&$&$@*----;;;*!+):::::::::::-
?=>+))***&###@#=)$#@#$$$&+?=)?+)=++?>+*&#&&&&#@@$&=&$$$@?----;;;**&@!:::::::::::
%%%??>>++=$###@@$##@##$#$$$#&>%%====&==%%$%##@@@#$%%&##@$;---!!!*:;+;:::::::::::
=??>>>>>?%$###@@@@@@#$$$?*)%$?=>??=+???>+%?#@@@@@$%&$@@@@?:--!!!*:^;;:::::::::::
====%%%%%%$$####@@@@#$$$+)+)=>=$==%%=$&%?&&&&&$@@$&$@@@@@#!--!!!)-^;;:::::::::::
%%%===???=&$###@@@@@#$$$>:*?;?*?:>)*+>?=%%%%%&$@@$$#@@@@@@=::::;:^^;;:::::::::::
?????????=%$$####@@@#$$#?)#%;&++;$+?=)%&%&&&&&&@#&@@@@@@@@#!:::;:,^:!:--^::::--;
?????????>)%$####@@@#$$#%=##>**&*$>=%+%&==&$&%$@#>#@@@@@@@@?:::;!-~!?!--~::;~--;
%=????%**~^!$####@@@$$$##%&&&$$$&%&###$###$$##@@#)=@@@@@@@@&::::=$?$#)--:;:;~-;;
$%????)+&!^~=$####@@$$$#$>>++>)==%?)>$=&%>?%&%$@@>*#@@@@#@#$!;;*=#%##%!:;;:;:-;:
&&=??%)?&)--*$####@@$$###$$%%$&$&$%%%$=&&=%$#$#@@&*$@@@@@###&+)?!#$##$>>?+!!>)>*
$&=??%)>&*~-;?$##@@@$$###&=%=%%%&&&&&&%$#$&&$##@@&*>@@@##@@@#&>&%@@@@#==?)*)>?>*
$&%=?=?*&;^~-;%##@@@#$###$&&&%&&&%&=&%%&#$&&&##@@&*)@@@##@@#####%@@@@@%+>)*=)+;;
&%%=??>)):,~-;+$#@@@#####$=&&%&&%%$%&&$&##$&&##@@?**&@@@########&$##@#&*);)>*+*:
====????=+;*)>==%&&$$####&=%==%%&%%&&&&&$&$$%&#@$+)):>@@#########%=??&??!+?%?!;;
??????>+>*;*+>?>))>&&$###@##$$$&&&&&&&&$$$##$#@@%))):~=#@##########$=%>++?===*!?
??>>>>+++!;!*+>+))>%%$####################@@@@@@&)))!;)############@#$>?>%&$$>>%
??????+++!;*)+>+))+?=$#####################@@@@@#)))*!*+=#############%??&$#&?>%
??????>>+*!*)+>+))+=&$####################@@@@@@#+)))**))>%###########$%>>>??>+>
???????>>)*)+>>>++>$#####################@@@@@@@#+)))*))))+>%###########?>?=%?=&
==???????>>>>>?>++>$####################@@@@@@@@#>)))))))++))>&########$!>%&&=%$
======??????=?????&$#######################@@@@@@=++))))))+))+>&#######?-:!+?>>%
===?=====????????%##$################@##@@@@@@@@@&++++++++)))++=&&$####)----:;!*
$&&&%%%=????>>>>>=$#################@@##@@@@@@@@@#%=?>>++++++++>=&&$$&&=+!-~--:-
##$$$$$$$$$&%%%===&#########@@#####@@@@@@@@@@@@@@@@#$&%=?>>++++>?==%%=????+:~--;
$$$&&&&&&&&%%%%%%==%$##########@@@@@@@@@@@@@@@@@@@@#$&%=??>>>>>>>>>>>>>>??=?;---
&&&&&&%%%%%======)==%&$########@###@@@@@@@@#@@@#@@@#$&%=??>>>>>>>>>>>>>>>>>??>+)
&&&&&%%%%%%=====?-*?=%%&$$####@########@@@@@@@#&$$$$$&%==??>>>>>>>>>>>>>>>>>>>>?
&&&&%%%%====????+-~:)>=%&&&&&$$$####@##@#####$%&$%%$$$$$$$$$&&%%=?>>?>>>>>>>>>>>
%%%%%%%%%%%=====)~~--:!)?%&%%%%%%==%%%%%%%%==%&$&==%&&&&&&&&&&&&&%?%&&%===???>>>
===========?????)-~--:;!*+=&%%%%%&&&&&&&&&&&&&$$&===%&&&&&&&%%%%%====%==????????