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