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