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