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