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