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