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