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