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