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