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