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