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