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