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