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