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