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