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