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