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