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