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