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