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