!!!!!;:::;&&&&&=++?=&&&=**%&;;;::::::;;--;;;;;;;;;;;;;;;%&&&&&&&&&&&&&&&=**!***+
;;;;;;;;:!&&&&%*!!*****!!!?&!;;;;;;;;;;--;;;;;:::::;;;::%&&%%&&&&&&&&&&&?******+
;;;;;;;;;;%&&&?!!!*******!+&!;;;;;;;:::--;;;;::::::;!!!!+%%*==&&&&&=?&&%********
::::::::::=&&&*!!!*******!*&;::::::::::-:;;;::::;;!*!!!**??+?+%&%?*!?&&&+*******
:::::::::;?&&+!*==?****!!!!=:::::::::::~:!;;::;;*!!!!!;!*+*=&*?%***!*&&&=**!!!!!
:::::::::!*=%!!+**+?*!*+==**:::::::::::--;;;:;;*!!!!*!;!??+++**+!+***%&&%*!;:;;;
;::::::::!***!!*+++**!*?+**;::::::::;;;--;;;;;!*!!!!!!=&&+!!!!*++&%+?&&&%*;::::;
;::::::;:;**!!!!!!**!!!!!!*;:;;;;;!!*++!:;;;;;;*!!!**&&&&*!!!**!!?*+&&&?+!!!;::;
!!!;;;;;;;**!!!!!!!*!!!!!!*!!!**!!***++;:!!;;;;!!!!!%&&&&+!!!**!!*+%&&=+*!!!!!!;
============*!!!!!***!*!!*=%%%%%%%%=%%%*:!;;;;;!!!!!+&&&&=*+****+%&&&&&%+*!!!!!*
%%%%%%%%%%%&*!!!!*+===+*!*%%%%%%%%%%%%=*:;;;;;;!*!!**%&&&&+****+=&&&&=*!*****!!!
%%%%%%%%%%%?**!!*%?+*+?=*+%%%%===???+++!:;;;;;;;*!!!!*=%&&%*!!*?&&&&=!!!!!!!!!!*
%%%%%%%=?!;:!+*!*%*!**!=*??????????????*:;;;;;;;!*!!!!*+&&&=***+&&&&*!!!!!****!!
%%%%%+!:::::!****&?+++?%*++*+???++*****;:;;;;;;;!*!!!!!*?&&&!***&&&?*+?==%&&!;;;
%%?!::::::::!!***%&&&&&?:********++++??!:;;;;;;;;!*!!!!!*=&&**!!?&&%&&&&&&&%;;;;
=;:-::::::::!!!!*?%&&=+*:;+??==?===%%%%+:;;;;;;;;;**!!!!*+&?****!?&&&&&&&&%*;:::
::::::::::::;!!!!!!**!*!::;=%&&&&&$$$$$=-;;;;;;;;!+===%%&&&%%&%%%=&&&&&&&%*;::::
:::::::::::::!*!!**!!**!::::?&&$$$$$$$$?:!!!!!!!!!+==?+*!!;;;;;!*+%&&&&=*;;;::::
::::::::::!:!;!!!!!!!**;;::::*&$$&&%%=?!:;;;;;!!!!!;:::::;!;!:;;::;!!!!;;;;;;;;;
:::::::::;:*:***++***++!;!::::!=???++++!:!;;;;;;;!!;;;;;:!:!;!**!!:!;;!!;!;;;;;;
:::::::::;-;;:;;!+!!:!;*:;:::::;*+???=&?:;;;;;;;;!!;;:;;;;;:!;!;!;;!!!!!!!;;;;;;
:::::::::!!!*;*;**+;;+**!:::::::;?&&&&%*:;;;;;;;;!!;;;;;;!!!*;*:!;!!!!!!!!!!;;;;
-------:---::-:;;!***;---::-----::*???+!:;;;;;;;;!!;::::::::::;;:;!;;;;;;;;;;;;;
..................................~~~~~~~.,,,,,,,,,,,,,,,,......................
:::::::::::::::;;;;;;::-----!%%%%%%=========%%%%%==%%%%==*!;!!!!!;;;;;;;;;::::::
;;;;::::;;;;;;;;;!!;;::::::*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%*!!!!!!!!!!;;;;;::::::
:;;:::;;;;;;:;;;;;;;;;::::*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=!!!!!!!!;;;::::::::::
:::;;;;!!!!;;;;;;;;;;;:::;%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+;;;;;;;;;:::::::::::
;;;;;!!!!!!!!!!;;;;;:::::?&&&&&&&&&&&=?=%&&&&&&&&&&&%+*+%&&%;;;::::::::::::::;;;
;!;;;;!!!!!!!!!;;;::::::;%&&&&&&&&&%*!!!!*+?%&&&&&=+!!!!*&&&!;;;;::::;;;::::;;;;
;;;;;;;;!!!!;;;;;:::::::;&&&&&&&&&&+!!!!!!!*!*+++*!!!!!!*&&&*;;;;;;;;;;;;;;;:;;;
;;;;;;;;;;;;;;;;;;;;::::;&&&&&&&&&=*!!!!!**+**!!!**!!!!!*%&&+;;;;;;;;;;;;;;;::;;
;;;;;;;;;;;;;;;;;;;;;;;;;?&&&&&&&%*!!!!!!!!!********!!!!!=&&*;;;;;;;;;;;;;;;::;;
:::;;;;;;;:::;;;;;;;;;;;;!&&&&&&&?!!!!!!!!*****!!!!**!!!!?&&*;:::::;;;;;;;;:::::
:::::::::::::::::::::::::!&&&&&&&+!!!!!!!!!*!!*******!!!!+&&;::::::::;;;;:::::::
:::::::::::::::::::::::::!&&&&&&%!!!!!!!!*****!!!!***!!!!*&%::::::::::::::::::::
::::::::::::::::::::::::;*&&&&&%*!!*!!!!!!!!!!!!+**!!!!!!*%?::::::::::::::::::::
::::::::::::::::::::::::*!?&&&&*!!!!!*+?=??+*!!*!!!!!***!*%*::::::::::::::::::::
::::::::::::::::::::;;:;***?&&?!!!!+=????==%%*!***+?%%&&+!=;:;::;;;;;;::::::::::
::::::::::::::::::::::::!*!*=%+!!!!**!*+?+*!*!!*!!*****=%!+::::::::::::::::::;::
;;;;;;;;;::;::::::::::::!*!*!!!!!!!!+???=+=**!!!!*?=%?+!**!:::::::::::::::::;;;;
;;;;;;;;;;;;;::::;;;;:::!**+!!!!!!!**********!!!!*******!+;:::::::::::::::;;!!!;
;;;;;;;;;:::::::::::;;:;;**!!!!!!!!!!!!!!***!!!!!**!!!!!*+::::;;;;;;;:;;!!!!*+++
:::::::::::::::::::::;:::**!!!!!!!!!!!!!!!!!!!!!!!!*!!!!*!:;;;;!!!!!!!!!;!!!+?+*
:::::::::::::::::::::::::!**!!!!!!!!!!!!!!!*!!!!!!!!!!!!+!;;;;!!!!!!*!;!!***+*++
==?????????????????????????*!!!!!!!!!!!!!!**!!!!!**!!!!!????????????+++???+++???
%%%%%%=======================+!!!!!!!!!!!***!*!!!**!!!!!=%%=%%%%%%%%%%%%%%%%%%&%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+!!!!!!!!!!*!!*******!!!!*!%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?!!!!!!!!!!!*+=&%%%%*!!!!**%%%%%%%%%%%%%%&%%%%%%%%%
&&%%%%%%%%%%%%%%%%%%&&&%%%%%%+*!!!!!!!!?%&&%?+?+=%=+!*!*%%%%%%%%%%%%%%%%%%%%=?++
&&&&%%%%%%%%%%%%%%%%&%%%%%=+!;**!!!!!!*&%?++??++++=&!*!?%%%%%%%%=====??++++++++?
%%%%%%%%%%%%%%%%%%%%%%%%=*::-;*+!!!!!!*&=!********+&!!*======???+++++++++++????=
%%%%%%%%%%%%%%%%%%%%%=?!:::::;*+*!!!!!*&=!!!!**!!!+&!*?=?++??==??????????????===
%%%%%%%%%%%%%%%%%%=+;::::::::;*!+*!!!!*&%*!!!!!!!*%%*+?+++++??????++????+++*****
%%%%%%%%%%%%%%%?*;:::::::::::;*!!*+*!**&&%??????+=&=+;+??++++++???++****!!******
%%%%%%%%%%%%=*;::::::::::::::;*!!!*+*!*%&&&&&&&&&&&?!:!?++++++****!!******++++++
%%%%%%%%%%+!:::::::::::::::::;*!!!!!*+*=&&&&&&&&&&+!;:;*!**!!*******++++?+??????
%%%%%%%%*:-::::::::::::::::::;*!!!!!**+%&&&&&&&&%+!!;::***+++++???????==========
%%%%%%=;::::::::::::::::::::::!!!!!!!!!*+=%&&&%?*!**:::;+???===========%%%%&&&&&
%%%%%=;:::::;:::::::::::::::::!**!++!**!!!***!++?*!+::::;+=%%%&&&&&&&&&&$$$$$$$$
%%%%=!:::::::;::::::::::;:::::;+;!-~+*+?*?++!++,=!*;;::-::!%%&&&&&&&$$$$$$$$$$$#
===?*:::::::::;:::::::::;::::::?*;!-!:+?~;*,!-?;?+;*:::::-:;=&&&&$$$$$$$$$$$$$#$
????::::::::::::::::::::::::::;:,!?-;!*+~;+-*+*;?!?::::::::::?&&&$$$$$$$$$$$$$$&
???!::::::::::::::::::::::::::;!*++++**+:+*++**+*+*:::::::::::*&$$$$$$$$$$&&%%=?
???:::::::::::::;::::::::::::::::***!!*+*!!***!***!:;::::::::::;%$$$&&%%==????++
::-,,,,,,,,,,,,,~~,,,,,,,~,,,~,~,------------------~,,,,,,,,,,,,~!!;;;;:::::::::