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