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