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