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