................................................................................
................................................................................
................................................................................
,,,,,,,..,,........,,,,,,,.,,,,,....................................,,,.,.......
,,,,,,,........,,.,..,,,,.,,,,,,....,..,.,...........,..............,,,..,......
,:--:-,:,,,:,:,:,,:,::;,::,,:,,=:,,:,,,,,,,:,:,,:,,:,,,,,,:,,,:,,:,,,-,:,,,,:,,.
,:=+::+;,,;+;=+-=:-=;+=;+=-=+,,*--=;==+;=,=-*--:=-+--=-:,+=-+-=+=-=,,==;==-=++,.
,:-+,,;+,:+*;;-,==-==;=;-;;*-,,=:==:=+-*;,-:+:=+==-:-==,:=-:=-=-=:=,,==:=-+;+-,.
,,,,:,::,,::,,,,:::::::,,,--=:,:,,,;,,,:,,,,,,,::,,,:=;,,,,,,,::,,,,,,,;,,:,::,.
,,,,,-,,,,,,-,,,,,:,,,,,,,,:;==-;,,,,,,,,;:,,,,,,,:;,:,,,,,,,,-,,,,,,,,,,,,,,,..
,,,--+-,-;-:+---:,+;------,,,;;;+=:==-:=,-==:==;==;=-,,;=;==:=+:,-=:=;=-:----,,.
,,,+,==,+=:,?-:--,-:+,=+,=,,,;;;;-=+-;+-,-:=-:--;--*-,:-*-;=-;=:,+-+-=+;+=+-;,..
,,,;-;:-;:-:;;;-:,:;;-:;-:;,,::::::--,+,,:,;,-;:::::;,,--::;,--,,;:;,--:;::-;,..
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:--,,,;,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,..
,,,,,,,,,,,.,,,,,,,;=-+,,==--:--,,;----,+-+-;;-;,==-;-=-;;-:,,,,,,,,,,.,,,,,,,,.
..................,-+--,:=-;====,:-*---,=:=,++--,-:=-:=,++--,,,,................
.................,,==;=,,;;:;:=;,:==;;;,;--,-;-:,:--;:;,-;-:-,,,................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
================================================================================
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;::::::::::::::::::::::::::::::
;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;:::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;;;::::::::::::;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;::;;;;:::::::::;;;:;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::;;;;;;;:::::::::::::;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;:::::::::::::;;;::;;;
;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-==+;;;;;;;-;-;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-*=+=--=-;;--=--;;;;;
;;;;;;;;;;;;;;;;;;---;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-;;;;;-=**%%??*+++**??+-=-;;
;;;;;;;;;;;;;;;;;-==---;;--;;;;:;;;;--;;--;;;---=++**+*+++*%%%%%%%%??%%%%%%*?*?*
;;----;;;;;-==++==------------;;;=*?*===?**==*???%%%%%%%%%%%%%?%%%%%%%%%%%%%???%
-=+=++===++**+=------;;;;;;-*****?%%%?*?%%%%??????%%%%%%%%%%%%%%%???????????????
==+++++=+%*-;;--;;;;;;;;---;????%%%????*??%?*?%%%SSSS###########S???????????????
+*????*??S?------------=+++-+**????%%%%%SS%S%%S#########@@####S????????????????*
%%???%%%S#S=---=---------------------------------==========++++=+*?????******+++
SS?*****?%S*============%===---------=+---------------------------+**++*?%SSSSSS
====*+=====+============+====+====+====+=-==---=-------==--------=*??++++*SS%%%%
++++++++++++===========-----++++++*+-+=+===++=+*=*+*--------------?%??+====+=---
++++++++++++==========------------=--+-=+-------------------------?%+*?%?**+****
+++++***++++=======--------------=--------------------------------?S=-==+*??**??
*+++******++=======****===***+-=*==*=-------=**+-----=--====------?%-;--=+*???%%
*???%%%%%SS?======+@#S#?=*@%S#++@+%#=--==--=#SS@+---%%-*S###------?%=+**??%%?%%%
SSS%SSSSSSS?=======#?=S%=?#=+S++@%@*========?+=#*===@%-===?S------*?*?????%?%%%S
%%%%%%%%%%%*=======#?=S%=?#====+@@%====+**+====#*==?@%===-%%=====-+??????%%S##S?
***%%%%%??*+======+#?=S%=?#+===+@@*====*SS*====#*==#%%====#*=====-+???%%S##%+-;;
-;-=++**??%*==+++++#?+S%+%S++++*@@%++++??%*++=%#+=*%*S===+#+======+%%S#S*=;;=+%#
+===*%%%%%%*==*%S++#?+#%+%S++++*@@#++*+?%%*+*SS++=S**S===?#++=++==*#%+-;-=?S##SS
%?*****%%%???+?%S**#?+#%+%S++++*@?@***+?*%*+#S+++*S=*S+++%%++++++==-;-*%##SS%%%%
%%%SSS###%=?%**%S**@?+#%+%S++++?@*#%*++?%S*+@?**+*####*++#?++++++==?S##S%%%%%%%%
?*S@@@@@#=+*?*++S*?@?*#%*SS+?#*?@*S#+*+%?%*+@?*****+?S++*#*++++++=+S%%%%%%%%%%%%
%?%S####+=+**+++S*?@##@%*%@#@#?%#*?#***%?%**####?***?S++?S*++++++++%%%%%%%%%%%%%
####@@@%==**++++S?%SSS#S######SS#SSSS###@@###SSSSSSSSSS%%%?%??***+=%%%%%%%%?????
@@@@@@%=-=*+===%#%%?????***************%%S******?????S#S%%%@@#===--%%%%%????????
@####S==+*+---+##SS####S###SSSSSSSSSSS%SSS%%?????????S%%?%%@@#==+;=%%%%%???%%%%%
#####+==++=--=?#SSSS%%%=*%%%%??%%%?????%?%*??***+++*?%?%?%%S#%=-+--%%%%%?%%%%%%%
*###S=--======*???********+++++++**++++++++++=+======-=======----;=%%%%?%%%%%%%%
-S@#S=-======++==------------------=+***?*=+?????%?*******+++**+*?%%%%%?%%%%%%%%
%@@@%======--=+**+--;;;;;;;;;;;;-;;-%%%*++*?S###@@#SS%%%%%%%%%?%%%%%%%%%%%%%%%%%
@@@@*=====--=++++*-;;;;;;;;;;;;;;;;;?*++*?%S#@@@@@@@#SSS%%%%%?%%%%%%S%%%%%%%%%%%
@@@#+====--=++++++=-;;;;;;;;;;;;;;;;=***?%###@@@@@@#S#S%S##S?S%%%%SSS%%%%%%%%%%%
%%%%=-------==++===;;;;;;;;;;;;;;;;;=++*?%%%SSSSSSS%%%?*??%%????????????????***?
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................................................