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