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