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