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