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