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