++++++++++++++++++''+#'+#+++'+######'+@@@@###################################@@@@######@@@########+#####@#######+++##################++++#####++#++#########+#+#########################+#+######################++########################################################
++++++++++++++++++';######++'###@@##'+@@@@##@@@######@@@########@@@@@@@###@@@@@@@@@###@@@@@#@@#@@##@#@@@@#@@#@@@@+++++++#########@####++#@#@###+##+###########+#@@@@@@@@@####@@@@###@@#@#############@@@##@@@##@#++###@####@@@###################@#@@@#####################
++#++++++++++++++';######+''++@@@@@#++#@@@@############@@########@@@@@@###@@@@@@@@@@##@@@@@########@@####@@@@#@@@@+'''''+###########+';#@@#@@##+##+########+###'@@@@@@@@@@@###@@@@##@@#@##########@#@@@###@@###@@++####@###@@@#########@#########@##@@@####################
+++++++++++#++++'++###@##+'#+@@@@@@##++@@@@###############@@#####@@@@@@@###@@@@@@@@@##@@@@@@####@##@@+###@@@@#@@@@##''+''+######++++;;@@@##@###+##+########+#@#'@@@@@@@@@@@@##@@@#@##@@#########@@@@@@####@@###@@++####@@###@@@#################@###@@@@@@#################
++++++++++++++'+#'######+'+'#@@@#@@@#++@@@@######@@@#########@####@@@@@@######@#@##@@##@@@@@####@##@###@##@@@#@@@@@@@@##++###########++@@@#####+#++##++##+++#@#'@@@@@@@@@@@@@##@@##@##@######@@@@@@@######@####@@++####@@####@@##################@#####@@@@@@@#############
+++++++++++++;###;#++##++++#@@@@##@@##++@@@@##@@@@@@@@@@@#####@####@@@@@###########@@##########+@###+#@##@@@@#@@@@#####@@@@@@@@#######@##########++++++###+#@@#+@@@@@@@@@@@@@@##@@##@########@@###########@####@#++#@#+#@@###@@################@#@#####@#@@@@@##@##########
++++++++++;+##+##'#+##+++#+@@@@@'@@@@@+#@@@@##@@@@@@@@@#@@@##+#####@@@@@#+++#######@@#+######@#+###@###@@@@@#@@@@@#+++###########################+++#+++#+#@@@+#@@@@@@@@@@@@@#@##@##@#################@##@@###@@#+##@#+@@@####@#################@######@##@@@@#############
++++++++'+######;#'+##++'+@@@@@'+@#@@@+++@@@##@@@@@@@@@@@##@###+######@##'+++#######@@#++#####@########@#####@@@#@@#+''++++#####################++++#++++#@@@#'#@@@@#@@#@@@@@@###@@##@###+#####@##@@#@@@@@####@###@@##+@@@###########@###################@@#@@@############
+++++++''#######;+'+#++#'#@@@@@+@@@@@@@+#@@@@#@@@@@@@@@@####@##+####@####'+++########@#++################+##@@@@##@@#'''++#+#####################+++#####@@#@#+#@@@@@#@###@@@@@####@#@###+####@@@@@@@@#@#####@@##+@####@@@##@################@###@#@######@###@@@##########
++++++;'#+#####'+''##+'+@#@#@@@#######@##@@@@@@@@@@@@@@#######@'+#######@#++######@@####++#########@####+##@@@@@##@#@#+''#@@+######################+#@##@@@###+##@@@@@#####@@@@####@@@@##+###@@@@@@##########@######+###@@@#@@@#+############@###@##@@@#######@############
+++++;#+'+####+:''+##+++@#@@@#@@@#####@@#@#@@@@@@@@@@@@@#######+#+#######@+++#####@######+##############+#@##@@##@@##@#+'@@@#'++##################++###@@@@@+++@@@@@@@@@#####@@@####@@@##+###@@@####+#######@@######+####@@#@@@@#####################@@@@@@#@#@@###########
++++;+';+####++:''+##++#@@@@@'@###@##@@@@##@@@@@@@#@@@@#######@+#########@#++++####++#@@#++############+#@#@@@###@@@#@@###@@@@'''++++++++++++#++#+++####@@@#+#+@@@@@@@@@@#####@@@####@@##+######++#########@@#####@#+#######@@@@####################@@@@@@@#@@@@###########
+#'#+''+++##+''+'+####+#@@@@#'@@######@@@+##@@@####@@@@########@+#+#######@#++++##+######@#++######++###@#@######@@@#@@@##@@@@@#''''++++++++++++#+++###@@@@#+++@@@@#@@@@@@#####@@@###@@##+####++####@@@@#@@@###@####+#########@@#####################@@@@@@@##@@#########+#
#'###+####+##'########@@@@@@+####@@####@@+##@#####++####@######@###+#######@#++++++#######@@########+###@#@######@@###@@#@@@@@@@#''''++++++++'+#++++####@@@+##+@@@@+#@@@@###@###@@@@##@##'######@#####@@@@@###@##@#++#@################################@@@@@@@@@@##########
'+++''#######++#++###+@@@@@@;######+#+@@@+###########'####@@####@#+++######@@+++++++#@######@#######+###########@@@###@@#@@@@@@@@@#+++++++++'+###+++####@@@+###@@@#+#@@@@@##@####@@#@#@##'###+#@######@@@@@##@@##@#++#@@####+##################@@@#######@@@@@@@@##########
'+'''+#####@#+++++###+@@@@@@'#########@@@+#@#############@########+++#######@@+++++++########@######++#####+####@@####@@@@##@@@@@@@@######++####+#+++####@#+##@@@#@+#@###@@###@##@@@@####+#######@@@@@@@@####@@##@#++###@@@##+#+###############@@@@@@###@@@@@@@@@##########
#++:+#####@#+#++'####+@@@@@##+####+##@@@@#@#####@@@##@@############+#+#######@@++++++###############++#######@##@@####@@@@####@@@@@@@@@@@##@####+++++######'###@@@@'#@####@@######@@@####+###########@@####@@@###@#+'###@@###+######@###@###@@##@@@@@@@@##@@@@@@@##########
+;'+#+#'###@'#++;#####@@@@@###@@@+###@@@@##+#@##@@@@@@@@###########++++#####@@@##+++++########@#####++################@@@@##+#+#@@@@@@@@@####+##+++++######+@@@@@@@'#@@####@@######@@@###+##################@###@@+++###@#####++#@#@####@@########@@@@@@@@@@@@#@@##########
+++#+###@@@@'#+#+#####@@@@+###@@###@@@@@@####@#@@@@@##@@@#############++####@@@@@#+++++##############++++'+###########@@@@@#+####+##@@##########+++++#######@@@#@@@'#@@@####@@######@@###+####+############@@###@#+++###@####++#@@@@@@#@@@#########@@@@@@@@@@@@#@##########
####+##@@@@@'#+######@@@@@'@#@@#####@@@@@@+##@@@@@@@#@###@#############++##########++++'#######@######+;;''###++######@@@@@#+#######++##########++++++######@@@#@@@'#@@@@####@@######@###+###++###########@@####@#+++##@@####++##@@@@@#@@@@#########@@@@@@@@@###@##########
+#+###@@@@@@'#'######@@@@@+##@@####@@@@@@@+#@@@@@@@####@##@@######++##@#++#######@++'++';##@####@#+####+;++#+#++####@#@@@@@##+##++##@@@#####@@@##+++++######@@@##@@'#@@@#@####@##########++##+###########@@####@#++++#+#@#@##+#@#@@@@@##@@@@#@######@@@@@@@@@@@############
+#+##@@@@@@@'++#####@@@@@####@@####@@@@@@@+@#@@@@@@#@######@@######++##@#++#########+'+''+######@######++++++++#####@#@@@@@##++#+++###@@@@@@@@@@@#+++++#####@@@#@@@;#@@@@#@####@########+++#++###########@@###@@#++++####@@##+##@@@@@@@@#@@@@@@#@##@@##@#@@@@@#@@##########
##+#@@##@@@@+######@@@@@@####@#####@@@@@@#@#####@@#########@@@######++#####'+########+'+++#######@##@@#++'+'''+#######@@@@@##+++++'++######@@@@@@@##+++######@@###@;##@@@##@############+++++########@@@#####@@##++#+#+######+##@@@##@@@@##@@@#@#+#@@#@###@@##@@###########
##+#@@@@@@@##@####+#@@@@@+######@##@@@@@@@+####@@@###+######@@@+###@##+###@+;''+####@#++++####@####@@@###+';'+++####@@@@@@@@#+'++++'++##############+++###########@;####@@##############+'+'+#########@@####@@##++++##+###@##+##@@@@####@@@######@@@#@@####################
##+@@@@@@@@+@@++#####@@@@'@+#####@@@@@@@@#+####@@@###########@@#++#########@'##+'+#####++''########@@@###++'++''####@@@@@@@@#+'+++'++++##+#####++###+++###@####+###;#####@##############+'++#####++#######@@@@###+#'#+++########@@@@##@@@@@@@@@##@@##@@####################
###@@@@@@##'@#+'###+@@@@@'@+######@@@@@@#+++##@@@@@###########@#'+#########@######++#++++##;'''++##@@@@@###++++####@#@@@@@@@##+;++';+++#++######++##++++#@@@###+###;######@####+######+##:++#++++####+###@@@#######'##++########@@@@#@@@@@@@####@@@##@##@#@#@##############
#+@@@@@##@#'@+#+###+@@@@@'#+######@@@@@@#'+##@@@##@##############+#@#########'#####++++++#'''++'+##@@@@@@##########@@@@@@@@@##+;''++'++++'+++++''+++#'++###########;###########++#####+#+:++++++######@@#@@########'#@#+######+@@@@@#@@#@###@###@@#######@@#@###@######+###
##@@@@@#@@#'@+#+####@@@@@'########@@@@@@++########################+###@#######+######''++''+#++;#++#@@@@@@#######@##@@@@@@@@@##+;''###++++++++++''++#'#############;###########+'#####+++:+++++######@#@@@@#######++#@#+####+##@@@@@@@##@##@###@@###@#####@####@@#####@+###
#@@@@@@@@@@'@+######@@@@@'###@@@@@@@@@@@'+#@@@##@########@#@######++##########++######'''++++'';;''##@@@@@@@@@######@@@@###@@@##';''##++'++++++++'+++'########+#@#+'############+++###+++:++++#########@@#######@@++#@#+###++#+#@@@@@##########@@##############@##@####+###
#@@@@@@@@@@+@#######@@@@@+##@####@@@@@@#+@#@#####++################++###########+#####'+#'+++''+'''+#@@@@@@@#####@@@@#@@#@@#@@###':''''+#++####++++++'#@#++#####@#+'#############'####+++:+'+#########@###++###@@+++#@@####++###@@@@##@@#################'++###@##@######+#
#@@@@@@@@@@#@#######@@@@##@@#####@@@@@#+##+###################@######+#########@++###+'##++'+#++'';:#@@@@#@@@##@#@@@@@@@@@@@@@@@##;::;'+###+#####+++#'####++#####@++#######+######+###+++;''+###########++###@@##+++#@@@++##+#####@###@#################+'''##@@###@##@@###
+@@@@@@#@@@@########@@@@##########@@@###+++####@#####@#'#########@###############++''+###++#+##+'+';+@@@##@@###@@@@#@#@#@@@@@@@@@##'::;;;:;'';##++''+'#@@#+++#####+++######+######++###'+;;++######+++++####@@@#''++#@@@@###+#####@###@#####+###########++++##@@##@###@####
+#@@@###@@@@+#######@@@@#@########@@@#+++++#@####@@@@@@@####@#############+####@#++++###++####@###+''#####@@@#@#@@@@@@@@@@@@@@@@@@##'::;;;'';'+#++'+''+@@@#++#####+#'######++######++##';;;+#####+++++####@#@@#+;'++##@@@@@++####@@##@##################+++#+#@@##@#@@@#+##
#+#@##@@@@@@@@#@##@#@@@@#@######@@@@@#+++#@@@@@@#####@@##@+###########+###+++++##+'++###+##@#####++'+#####@###@@@@###@@@@@@@@@@@@@@##';,,:;;;''+'';;'##@@##++######@'######+++#####++##+;;'+#+#++++#########@#+'''+###@@@##+######@##@############+#@+#+##########@#@@@#+##
#++###@@@@@@@@@#####@@@@@@##+###@@@@@#++#@@@@@@@#########@@+#########'++#####++++++##+####@########++#########@@@####@##@@@@@##@@@@####+'::;;;;;';';'+#@@##++#+#####;######++++#####+##+;''++++#+############++''++###@@@@########@#####'+###########+##############@@#@+##
###+#@@@@@@@#@#####+@@@@@@######@@@@#'+##@@@@@@@@####++####@+####++'';'+#####+++++######@@#########+'######@##@@@@######@@@##@#@@@@@@@@###';;:';';''+######++#++##@#;#######+++#####++++;'++++##############+++++#####@@###+######@#@+#####+##+++####+########+###@@##@#+##
@@@+++#@@@@@#@###@#+#@@@@@######@@@#++#@@@@@@@@@@@###########''###++'++#####++@@#+##@@#+##+#######+++#@###@@@###@@@@@##@+########@@@@@@@@@#''';;;;'+;######++#+#####;#######++++####++++;'+++++############++++#####+#@@###+######@#######++'#++############@########@##+##
@@@#+'+##@@@#@@##@#+@@@@@####@##@@#+#@@@#@@@@@@@@@@@#########+''''';++####++++@@@##@##++++######++'+++####@@@####@@@#@@###++##@#@@@@@@@@@@@@+''+++++++##+##++##+####'########++++###+'+':'++++##########+#+''+####@#'#@###++######@#########'############@#######+#@@@@####
@@@@##+'+#@@@@@@@@@##@@@@#@#@#######+++#########@@@###########+'''+''++#+++'+######++#+'+###+#+##+''++####@@@#####@@@#@@@#@@@##@@@@@@@@@@@@#+##@#@#+++####++####+##+'#+######+'+++##+++':''+++####+++++++#'+######@#+#####++#######+#######''####+#################@@######
@@@@@##+'++#@@@@@@@##@@@@@@@#####+'+++++#########@@@###########''+;++'++++###+#####+##++'####+###+';'+####@@@@#;######@@#@@@@@@@@@@@@@@@@@@@##@########'##+##@##+##+;#'######+''++++++'':''++#####+'++#++++#######@######++#+##############'#+###+########@#######@@@##@###
@@@@#@##+'++##@@@@@@@@@@@#@@###+''++#####@@@#####@@@###########''';++'+##+#@###'#####@##+####+++++'''++###@@@@#;###@@#@#@###@@@@@#@@@@@@@@@#@@######+#++##+########+'#'#######+'#+++++';:;''++++++'+++++#+#####@@#@######+##+####@######+#########+#####@#@####@##@@@#@@###
@@@@@#####''+###@@@@@@@@@#@+''''+##@@@@@@@@@@@#'+#@@#######+###+''+''+++#+'+###########++###+++++''+'++###@@@@@++@##@##@@@+####@@#@##@@@####@@########'###++#######+##########++##++++;;:;'+++++++##++++##@@#+##@@########+#++###@###############++############@@##@@@@####
########@####+##++###@@@####@@@@@@@@@@@@@@@##@@#++#@@#########'''''+++##++++##@#######+++#++''''';''#####@#@@@@#;####@@@@@@++#####@@####@#+###++######+'#####@#######@@;#######++++''';;:''++++#+###+++##@@@#'##@@@#####+###++####################################@@@######
@######@@@@@####+'''''+++####@@###@@@@@#@#####@@#+#####++####'''++++##+++#+###@@#####+#+';;''';''+####@@#@@@@@@#;+#####@@@@#',#############'''''+++##############@###@@++######+++#';';;;;'+++#####++####@@@#'@@@@@###@####+######################+################@@####+#
@@@##+###@######+#+++++++++#++##@#######@######@@#+#####+###''''###+##++##++@#@@#@#+++''''+++'''++####@@#@@#@@@#+''#####@@@@@'+##############'::;;'++';#;+#####'##++#@@#+#######+'++;;;:;;'''+###+++#####@@#+'@@@@@###@##@#+###############+#++++#+###########@###@@@####+#
#@@###+++##+++++##@@@@############@###++###########+#######''++##@#####+++##@@@@##++'+''''''++++++#######@@@@@@@#'+;#####+#@@@@@@##############;;:;'+++#+++####;++###@##:#######+';+;;;::;''++###+++#####@@#'+@@#@@#########+############++++++++#####+###########@@@#@####
+@#@@@#+##+++#++##@@@@@@@@@@@@@@@@@@####'@#######@###+++++'++###@@@####++###@@@@+++';;''''+++++++++######@@@##@##+'+;+#######@@#@###############+++++++########;+##+####;+######+':'';;::;''+#++++######@@#';#@@#@@#######++########+##++'++'+++'#+++#++########@@@@@####+#
######++@#@@@##++####@@@@@@@@@@@@@@@@####'#############+':++###########++###@@@+'';'++++###++'++##'#########@@@@#@';++'##+####@@###++#########+#######'#+#+#+#'+++#+####'+##++##+';;';::;:'+++++++#####@@@+';###@@@#######++#######+++##+'++'++''#''##+++#####+@#@@@@####+#
@@####++@@@#####+'####@@@@@@@@@@@#@###@#####@###########+'+###########+#+##@@#+';;'###########++###+######@@@##@@#+;''''+++####@#@##+'###################++'+++#####@##++'##+++#+';:;;:::;''''+++######@@+;';###@@@######+++#######++'+#+''#'++'#+'+#+''+#####+#@@@@@#@##+#
@@####+'@########+'###@@@@@@@@@@@#########+##@##########+'##################+';;++#@######+#####+###+####@#@@@@@@@@':,:''++++###@###+''+#######''++###+++###'+##########+'++++++++;;;;::;;'';'++#######@+;';+###@@@#####++++#######++''##'##+#+##+##+';+#########@#######+#
#####+++@@@@###############@###@#######@###+++##########+'######+#########;'';'+##@@@@#######+########@#+#@@@@@#@@@#+,,,:'++++##@####''++#######''+++#+##++###+++#######++####++++';:,,,;;;''++########+''';####@#####+#++++##+#++##+''###@@@#@@##@##++#+++#####+##@@@###+#
#######+'#@#@@##############@@@@############+'++'+++++#+++#####+#+'#+###+'''''##@@@@@@############+##+###;#@#@@@##@@@#,,,,,;;;+#@#####+++###+####';''''+#+#+++'+######+##+####+'+++;:..,;;;'+++######+++''''##+#@####+++#+++####+++#+++##@@@@@@@@@@@@@#++++#####+##@@#@##+#
@@######'##@@@############+##########@#######+++++++++++'+++#+;+#'+;+++++'''+#@@@@@@#@@@@####@#####+##'##+;###@##@#@@@#;:,,:'+#@@@@##+'#++++++####'';;:'+'+#++####@+##++###+##+';++;;..,::;'++######++++++++#####@@#+++#@@@@@+#++'+###@@@@@@@@@@@@@@@##++'+#####+##@@#@####
@######+'#@@@##@@#############################+'++'+++''''###+'+'+#''+'+++'+@@@@@@@#####@@#+@@@########:##'###@@#@@@@@#@'+'+#@##@#######+++++++###++';:;'';''########'#++##+#++';'';;,.,;;'+++++'''++++###'#@#######++#####@@@###+#####@@@@@@@@@@@@@@@@@########+##@#######
@@###@#+#@@@@@@@@###########+##############+##+''''###+''+##++++++#++#+++''@@@@@@@@@@@@###+#@@@#####+##';#####@@#@#@@@##@@@@@@@#+'#++######+''+###+++':++++++##+#'#+####+##'#+++;;'';,,::'''+'''+##++###+#+#########@+#+####@@@###@@@@@@@@@@@@@@@@@@@@@@@#++##+##+##@@#####
@@@##++#@@@@@###+#########################+++##+';#####+;+#+++##+##+#++++;#@@@@@@@@@@@@@##+@@@@########+,+#####@#@#@@@@#@@@##########+####++''+#+#+''++'++##++##+++++#####+++++++;'':,,;;'''+++#########'#+####++#@@@##+####@@@#@#@@@@@#@@@@@@@@@@@@@@@@#@####+#+###@@#@###
######++#@@@##++'++++++#@@@@@@@@###############+';+###++++#'+####+#++++#;#@@@#########@##+##@@@########+;'########@@#@@@@@@@@#@###+#+++####+';'##+++;+'';++###+##+######++#@'++++;;'.:::;'''+++########+####++#+###@@###+#++#########@@@@@@@@@@@@@@@@@@@@@@##+#++####@@@###
+############++'##+++;##@@@@@#@@@@@##+##+++'+++''''+#++#++++#######++##+;@@####@@@@########@@@@#####+###+:#######@#@@@@@@@##@@@@@@#+++++++++';+#++''::'':;+++++++++####+''#@++++++;':::,;;'+++#######+#'###+##+#####@#'#++++############@@@#@#@@@@@@@@@@@@@@##+++###@@#####
##@@@###+###########+'##@@##@###@@@@@##++'''''''''''++'''',+########++#;#@#@@@@@@@@@####'#@#@@@#####++##+;####@#####+#+######@@@@##@#+######''+#++'';,;;':;;'++++#+##+'+'####'++++''::::;''++++#####+#'+###@####++#@##'++'''+#######@@#+############@@@@@@@@#@++#+######+##
@@@@@##@@#####@@@####'##@@@@##########++#####';:;'#'''''';;+###+++##+++'@@@@@@@@@@@@@##++@##@@@######++##+#@@#@######;;++#######@+###@######+'+++'';;,.:;':;;+++#####+##++###:++++';:.:;;;''+++####+##+##+#########@+#'+++++'''++######################@@@@@@@+#########+##
@@@@@#@@#+#@@@@@##########@@@###########@@###+;;'+######+;'+###+++++++'#@@@@@@@@@@@@@@#+#@#+@@@@####+'+###@@###########;;;;;:+'#@+++######+++++#++':;:.,:;',;'';;:;+####++###+#'+++::,:;;;'+++####+@@######@####@##@##'#####++'''''''+++#####+#############@@@##########+##
@@@@@##@++#@@@#####################+++#@@##+++''#@#######+'####+++##++'#@@@@@@@@@@@@@##'###+##@##++++;+#################',,,,:##+;+++'''''''+';+'';;;:..,:;'::::;++#'####++##++'+++:,,:;;'''+####'#@###########+######'#####++++++++++++####+############@##@@@#########+##
@@@@###++++@@@#####@######+#########+''#######+#@@########'+###+####+'+#@@@@@@@@@@@@@#+####+#@@###++++###@@#####################''++'';;'++'';;++';,;:,`.:;;':;;;'+#'+#+##++++++;'';:;'''''++#++;+##+++######+###+'+##'+++++++++++++++++#++#################@@@+########+##
@@@#######+#@@######@#####++#++######+'########@@##########+###+++###+#@@@@@@@@@@@@@@#+@###+@@@#########@@@@@###################+#'++;########++#+'';;:.`:''++''+++#+#####+###++;'';;;';++####+#+###+##+;#@####+@+#+#@#+'+++++#++##+#+#++#################@@@@@++######+###
@@##@@@#@###@@@#@##@@######++++++##++#++#++++#@@@#######+##+#+##';+##'@@@@@@@@@@@@@@@##+###+#@@@##@#@@@@@@##################@@###++'+##########'++':';;:.:'+++'''+#@'+'+#++###+#+:';;;'+#####+#+######+++#######@####'#++''+''++''+''+++###################@@@@+#######+###
@###@@@@@###@@@######@#####++#+;#+##+'++++++##@##@@@##+##+#+++++;''+#+@@@@@@@@@@@@@@###+###++@@@####@@@########+##############@@##++###+#######++#+''';;:,++##'++#@#+#'+++####+#+'::;;+#####+###++#########++######@@'+''';;::;;::;''+#####################@@@@########+###
@##@@@@#@####@##++#########+##+#+#++##++++++#@#@########+#+#++++'''++;@@@@@@@@@@@@@@##+#####+@@@##########@#+++#########++########+'#+++##+++##++#++''''+'+###'+#+;+#+++++#######'':;'+####;#+#+#+####@#++####+#####@@#@#+''';;;;'++#######################@@@@+#+####+####
##@@@@##@@+###+##+###@##########++######+'++##@#######++++++#++''''+'+@@@@@@@@@@@@@@##'###+###@@########+++++############++###@#@@#'++++++#####+''+++';++++####+##+;'++#+###+####+;';'+###:##++##+####'###++###++++#@@@@@@@@###############################@@@@+++####+####
##@@@@###+'++#+##+##########@###+########++'+####@###++###++'+++++++'@@@@@@@@@@@@@@###+##@'#####@##+###+++++#@@#######+###++##@@@@##++''++++++##++#+++';'######+##+++'+#+###++####+'++###;###+'####+####+######+;;++##@@#@@@###############################@@@@++####+#####
###@@#++++'++++++++#########@##++##########+''+######+######'++++##+#@@@@@@@@@@@@@@##'+##@+#####@###++++###++##@#+#########+#####@##++'''++##+#+######'+''#######++'+##++##+++####'+#####+##++#++##+#+#+####@@#@##++++##@@@#################################@@@++##+#+#####
##@###+#+++####+#######@###@@@@############+''+++#++'+'#####+'++#####@@@@@@@@@@@@@@#@'##+###########++'++#@##+####++####'#+#+####@#@#':'++##+'+#######+++'+##@####++++++#+++++########@#+############+##+++++##@##@@@@@@@@##################################@@@+###+#######
##@#####+#@@@@@##@####@@@#@#@@@#############+'';+++++';:####+''+##@#+@@@@@@@@@@@@@@#@+#@############+++++'+##+'####++#####++'#+###@@@#:#@###'+##+++#++#+##++###+++''+'++++++++##':#########+##@##;##+#####+''+''#@@@@@######################################@@#+##+++######
##@#######@@@@@@#######@@#@#@@####@@########++';++'+++';;##+++'+##@#+@@@@@@@@@@@@@#######+##+#######'++###+###+'##++++###'#++#'####@@#+#@@@#'+#+''+#++#####+####++'''+'++''+++##';+####++##+#+#+##+'+''''++###@@@@@@########################################@@####++#######
##@@@#####@@@@@@##@@##@#@@#@#######@@####++++''++++#+;'''+'+++'+##@###@@@@@@@@@@@#####@+#####+######'++####+##+''##++++#+'++++++#+#@#@##@@@#'#+''''#++###+#######+'''''''''+'+########++++#+++####'';++;;'''+#@@@@@@@###########################################+++########
##@@@#####@@@@@@##@@###@#@##@##@####@@########+''+##+':'+##'+++++#####@@@@@@@@@@@#####@+#@+###+###+''++####++##''++++'+++''+++++#+###@##@#@@'#+'+++#+'+++++########+'''+'''+'+########++++#+#####+#+##++''##@@@@@#@@########################################@####++########
@#@@##++#@#@@@@@###@@##@@@##@@##@@@###@@#+#####';''##+;':##'+'+++#####@@@@@@@@@@@#####@+##+###+###'+'#+#####+++#''+++'''''''++'+++###@##@@###@+######+####+#+#@#####+#+'''''+#########++++++#+++++'+++++########@@@@#####################################+#@@##+++#########
@@@@###+####@@#@#@#@@@##@@@######@@@@++########+'+''++'';##+++++#'#+#@@@@@@@@@@@@@###@#+#######'##'##+#####++++++'''';';;;'+++++++#######@###@###+++#+##+'++++######;;''';''#+########++++'+++'++;+'++++####+#+###@@@######################################@@#+++#####+####
@@@@###++###@@###@@#@@#@@#@#######@@######@#'##++'''+''';;#++''+###+'@@@@@@@@@@@@##@#@#+###+#@#++''##++####++++'''''';:;++++++++##++########@@@@#+++####+'''#++##@@##';;;;;##+#+##+#+++++++'+''++;:;'++#####++++#+###########+#############################@@#+++##########
@@@@#@##++#######@@##@@@#@####@###@@@##@@@@@#+++++'+++''''++'''++#@#+@@@@@@@@@@@@@@@@@#+###'+###'''##+#####+++#''';;;:'+'++####++##++########@@@#+++++##+''@##'###@@'##+';#+++#+#+##++++++'';;;;`,;;'+++++##++++++++######+################################@@#'+###########
@@@@#####++####################@##@@@@@@@@@@@@##++'+'''';'+'+''';###+@@@@@@@@@@@@@@@@@###@#######'#+++####+#++##'';;;+'';'+#####+'##+#######@@@@##+++###++####'###@#+'+#++++########++++'';;++:.:;;''++++;;;:'+'++######;+#################################@@++############
@@@@#####++##@@@####@@@@@@####@@#@@@@@@#@@@@@@@@#+'++''+'++'+++';;###@@@@@@@@@@@@@@@@@###@###+###'#+++#+####++##'';;+';;,;+#####'+'##+######@@@@@#+++###++####+#+'###;++#+++#######+'+''';''++''+++++++#':,::;:;;;;++';'###################################@#'+############
@@@@@#######@@##+#####@@@@@###@@##@@@@@@@@@@@@@##+++#+'#'++++#++'''++#@@@@@@@@@@@@@@@@###@#@##+##'+'#+#++##+++##';;++';,.;######'++++#+#####@@@@@@++#+##++######++###++###++#######+''''+@###+++####+++##+;;;:,,,,::;######################################@++############+
@@@@@@####@@@@##++####@@@@@##@#@@##@@@@@@@@@@@@##+++'''++#++#++++':;'#@@@@@@@@@@@@@@@#@#@@#@###+++'+#++''+#++'+'':++'::;'+######+++;+#++####@@##@@#+'+##++#######+##'+'####'#++##+#+;''#@@@#+''+####+#+###';:;;'+#########################################@#+########+##+++
@@@@@@##@@@@@#+##+#####@@@@####@@@@#@@@@@@@@@@@@###+'++######++###':'#@@@@@@@@@@@@@@@###@@#@#++#+++++++';+++#+'':++'+'''+#####+++++'++++####@@##@@+''##+++####++####+++###++'+++++##'+@@@@@#########++######@@#@##########################################@##########+#++'+
@@@@@@@@#@@@@#+##++####@@@@@########@@@@@@@@@@@#@##+########++'####';+@@@@@@@@@@@@@@@@@@@#@@#+##'++++++'+#++++'''#+++++++#####'':''++#'#+#+#@@##@#+++##+++####+'+####++##+++'+++'++#@##@@@@######+###+#################################################################+',,
@@@@@@@@@@@@@#++#######@@@@@@########@@@@@@@@@@@@######@@@#+++'+####;'#@@@@@@@@@@@@@@@@@@#@@#+@+++++++'+##++'++'####++++#####+';,'+'+#+#####@###@#++++#++++###+++####++#++++'++'+###+#@@##+####+#+###########@#+#############+#######################################+++'`,
@@@@@@@@@@@@@#++#########@@@@########@@#####@@@@@@####@@@###+++;+###+'+#@@@@@@@@@@@@@@@@@#@@#@@+'#+++'+####++'''############++;:'+:++###+#+#######+#+'#++;;###+'##@@####++++''+++##+'#@###'###+##+##+#@#@#############################################################+''.;
@##@@@@@@@@@@##+#########@@@@@@#######@@@@@@##@@@@###@@@@@######+'++''+#@@@@@@@@@@@@@@@#@@@#@@@+'###+++#####+''#####++#+####'':,+'''+###+############;++;+'####+#######+++++'''++#++#@########+##+#+#+#@@@##@#######################################################++#++++
####@@@@@@@@@@#+##@####@@@@###@@@#+##@@#@@@@####@###@@@@#@##@#####+++'+#@@@@@@@@@@@@@@@##@##@@@+;###++######+''####+++#####++;;':';+++##+##########+#:+;#++;##########++++++'+'++++##@###+######+'++:++#@#####################################++++##############+###+#+++++
+++#@@@@@@@@@@@#+#####@@@@####@@@@##@@###@@@@@##############@@#####+++#'#@@@@@@@@@@@@@@#@#+@@@#+;###++####++#''###++++++##+++;;':::'+###'######+##++#;:+#++'###########+++++++++##+###+##++##+#++''#,,''+###########################################+#++#######+##+###+++++
####@@@@@@@@@@@@#####@@@#######@@@@##@###@@@@@@#######@@@@#@#@######++##;#@@@@@@@@@@@@###+@@@@##'+###+#####+++###+#++++###++':+,.,:;,+#########+###+#;;+#++;'##@###+####++++++++#'###+++++'##'+'';+###';;'##############################################++++#+'++###+#++#++
@@###@@@@@@@@@@@@###@@@#######@@@@@##@###@@@@@@@###@@#+@@@@@#######+'+###'#@@@@@@@@@@@@#+@@@@@##'+#+#++####+++##+#+++#####++;+':,:;';+###+#####+#+++#'++#++;'######+.;##+++++++##+#####''+###'':':+#####@#######+#########+#########################################+#+#+++
@@#@#@@@@@@@@@@@@##@@@##++####@##@@@#@@###@@@@@@##@@@###@@@@@#+#####'#+++#+#@@@@@@@@@##+@@@@@@##+++++++####+'+##++#+;'++##++++:,,;;:'+#######+#'#+++#'###++'++##@##..:+##++#++##+######+@###';;;';#############+#+#+#####+##########################################+##+#++
@@#@#@@@@@@@@@@@@@@@@###+'++##@###@@@#@@##@@@@@@@##@@@##@@@@@@##+#+'####++#######@@###'@@@@@#@##+'+###'+###+'###+#:,;#+;+##+++:,.;;'++##+###++#+#+++++##+++;++##@##..:;#####+######@@@@@##@#';;++#@##########+##+#####+#####################################+#######++#++++
@###@@@@@@@@@@@@@@@@@++##+'+##@#@##@@@@@###@@@@@@##@@@@##@@@@@@######@@@+'+++++'''++'#@@@@@@@##'+'###+#+'+++'##++,++++++++#+++,;:;''++######+#+##++++'#++++++'#####..:'####++:#'###@@@@@@@@';'#@#############+++++#################################################++++#+++
##@@@@@@@@@@@@@@@@@@@#+##+++#######@@@#@###@@@@@@@##@@@@##@@@@@####@@######@##+'+#'+#@@@@@#@#@@##++######++''##';+#+##++###+++;:;;''+#############++'##+++'#++#####,:;;+##++.#+++@@@@@#@@@@####@###@@@@##@@@#+++++##########################+##############+########+#+++++
###+'##@@@@@@@@@@@@@@@++#++++#####@@@@@@###@#@#@@@@#@@@@@@@@@@@#@@##@@@@@@@@##+@@+@@@@@@@@@##@####'#######+''#'+#++':;''++++++':;';'+#############++;#++++'++######,:;;###+.++'##@@@@@#@@@@@########@#@@####+++##++##+##+#####################################+####+##+++++
#@####@@@@@@@@@@@@@@@@@++++++##@#####@##@@#####@@@@#@@@@@@@@###+#@@@@@@@@@@@##@@#@@@@@@@@###@@+@+#'+######+#+#+++++######+++++';+';'+############++'##+'+'#++#####+;;:+##+.++'###@@@@@#@@@@##@########@@###@#++++++#++#+#++###################+####################+#++++++
@#+#@###@@@@@@@@@@@@@@@#++++#@@#+####@@##@#####@@@@@#@@@@#@@@@@@@@@@#@@@@@@#@@@#@@@@@@@@@#+@@@+@+#'+#####++++#'++###@######++++;+'''###'########++#'#''''#+++##+##':;'+#+,++'#####@@@##@@@@@##@########@#####+++++#+++##+++#################+############+########++++++++'
@+###@#@@@@@@@@@@@@@@@@@#+##@@#######@@##@#######@@@#@@@@@##@@@@@@@@@@@@@@#@@@#@@@@@@@@@#+@@@@+#+#++++###++'#+######@#@@####+#++++''###;########++###'''+#+''##++#';;+;;;'+'########@###@@#########@@########+++++++++#+++++####################################+#++++++++'
@+####@###@@@@@@@@@@@@@@@++@@#+######@@##@########@@@#@#@@@##@@@@@@@#@@@@@@@@#@@@@@@@@@@+@@@@@##++#'+++'++''#+#@@###@@@@#####++++#+####+########++#####'#+++'+#+'#;:::+;;+'#############@###########@#########+++++###++###++###########################+####+##++++++++++'
@+####@###@@@@@@@@@@@@@@@###@@++#####@@#+#########@@@@#@@@@##@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@#+#+#'####''+;####@#@@@@@##@@####++#+####+#++#+###++#####;#++''+#+'+;;++;;++'#############@##@#@#####@#########++++++##++++++#+#############################+####+++++++++++'
@####@+++##@@@@@@@@@@@@@@@@@@@#'+####@@######@@#@###@@##@@@####@@###@@@@@@@@@@@@@@@@##@@@@@@@####;#+++##+'+'+###@@@@######@#####+######+##+#####++###+#;#+'''+#''';'++;'+'##+++#####+#@#####@@@@##############+++#+#####+##+###########################+########++++++++++'
@@#@####@##@@@@@@@@@@@@@@@@@@@@#+##############@@####@@@@@@@###@##@@@@@@@@@@@@@@@@@@@#@@@@@@#@######+###++'++@@@@@@@######@#####+######++##++###++###+#'++'''+++'';'';'++'++++#################@@######################################################+########++++++++++'
@@@#@###@@##@@@@@@@@@@@@@@@@@@@######@@@#########@#@@@@@@@@@@####@@@@@@@@@#@#@@@@@@@#@#@@@@#@@######+##+++'+#@@@@@@#@######@####+######++##+####'###++++++'''++''';;;'++'###+#+###+#@@##@#@@##@@@###############+##############################################+++++++++++'
@@@@@#+###@@@@@@@@@@@@@@@@@@@@@@##++@@@##########@@@@@@@@@@@#####@@@@@@@@@#@@@@@@@@@##@@##@@@@#+####+###'''+#@@@@@##@#############@##@#++##+####'###+++##'''++'''';;;'+;'##+#++##+#@@@@#########@@############################################################+++++++++++++
@@@@##++#@#@@@@@@@@@@@@@@@@@@@@@@@##@@############@@@@@##@@@@@##+###@@@@##@@@@@@@@@@@@@##@#@@@#+##+#+###'''+#@@@@#####+#################+#+#####'###''+#++++'+''';';+'';##++#++#+#@@#@@########@@@@########################################################++++++++++++++++
@@@@@+++#####@@@@@@@@@@@@@@@@@@@@@@@@@++#########@##@@@#++###@@####@@@###@@@@@@@@@@@@@#@@#@@@@#;#+++'+##++'+#@@@+#####++###########@@#####+#++##+###;'+#+#+#++'';';''';###++++#+#@@@####@###@@##@##@#########################################################++++++++++++++
@@@@@##+#@###@@@@@@@@@@@@@@@@@@@@@@@@@+++########@@#@@@@##+##@@###@#####@@@@@@@@@#@@@@@#@#@@@@#+###+'+##+''+@@@#'###################@#######+++##+##;'+##++++++'++;+++#+###+++###@@@@@##@@###@@@###########################################################++++++++++++++++
@@@#@@++@###@#@#@@@@@@@@@@@@@@@@@@@@@@@++########@@##@@@@##+#@@##@####@@@@@@@@@#@@@@@@#@#@@##@#####+'+#+++'+@@@+#@@@@#######################++##++##;'+#+;++++++'++++#++##+###@#@##@@@##@@@@##@######################@#@@@@#################################+++++++++++++++
#@@@@@#@####@#@##@@@@@@@@@@@@@@@@@@@@@@#++#######@@###@@@#####@@#@#'#@@@@@@@#####@@@@###@@##@@#+###+;+++++++@@#@@@@@@#####+################+++##++##::##+''+#+#+'++;#++#++#@###@###@@@@#@###@###############################+###########################+#+++++++++++++++++
#@@@@@@#@+##@#####@@@@@@@@@@@@@@@@@@@@@@#+##########@#@@@###+##@#@###@#@@######@@@@@@##@@##@#@#+####:'++''#+@@#@@@@@##########+##########@#+++#+'+##::##';;##++;;#;'###+++@@#@@@@##@@###############################@###++##+##########################++++++++++++++++++++
##@@@@@@@+##@###@@@@@@@@@@@@@@@@@@@@@@@@@#+#######@@@@@@@@#####@@###+##########@@@@###@@@##@#@@'+##+;++++'++@@#@@@@#++###+####+###+########+'##+''+#:+#+:;'#++';;';###++##@@##@@@@##@###########+#####################+##+#############################++++++++++++++++#+++
###@@@@@@@##@####@@@@@@@@@@@@@@@@@@@@@@@@@++#######@#@@@@@######@#@####@##@@@#@@@@#@#@@###@@#@@'+###+#'++++'@#@@#@##'####+#######++########'###'''##,+#+,:##+;;;++###++#@@@####@#################################++###+###'############################++++++++++++++++++++
+###@@@@@@##@####@@@@@@@@@@@@@@@@@@@@@@@@@#+#######@######@@#####@###++##@@@@@@#####@@@##@@##@@++###+#'+++++#@@@@@#'+####+#######++#######+'###';###++#'.'+#;::'#####+#@@@#####@@###@##########################+#####++#+#+###########################+++++++++++++++++++++
#+##@@@@@@@@####@@#@@#@@@@@@@@@@@@@@@@@@@@@#+####@########@@@@@###@@##+###@@@#####@@@#@@#@@##@##+###+#'++'+##@@@@#+;+############+########'####;:##+++#:.#++;:,#####++#@@###########@#+#########################++++####++############################+++++++++++++++++++++
#+####@@@@@@@+###@#@@#@@@@@@@@@@@@@@@@@@@@@@#+#############@#######@#####@#@#####@@@##@@#@###@@#####+++'++''#@@@##;+##@##########+#############,'##+;'#.'+#+,.++##+++#@@@@@###@@@###@#####+#####################''#++##++#########################+###+++++++++++++++++++++
##+###@@@@@@@+@##@@#@@#@@@@@@@@@@@@@@@@@@@@@@###@##############+##########@####@@@###@##@@@#@#@+#+##++#'++';#@@@####@#@##########+######++###+#`+#++;'#,+##,.+'###++#@@#######@@############+++++##############+#+#+'@#+#########################+###++++++++++++++++++++++
###+###@@@@@@@+###@@@@#@@@@@@@@@@@@@@@@@@@@@@@@#+##########+####+##@@#@#####@#@@######@#@##@##@#####++#+''';##@@@@#@@#@@#####+##+######+++###'#.##';:###'##`'+;##++##@@#@####@@#####@@########################++#'#++@+#########################+####++++++++++++++++++++++
#######@@@@@@@+####@@@##@@@@@@@@@@@@@@@@@@@@@@###+###############+##@@#######@@######@#@@#@##@@#++##'+##+'';+#@#@@#@@#@@####+++#+######+'###+'#++#'::#'::#,;+,+++++##@@@@@#@@@@@@@#############@@####++####+##+++###+################################++++++++++++++++###+++
####+###@@@@@@@######@@@@@#@@@@@@@@@@@@@@@@@@@#@##+##+##############@@@#####@@@#######@@@@@##@@#+++#++##+'':'#@@@@@@@@#@####++######+++';###+'+;##;,+';,:#:;',##++###@@@@@@#@@@@@@@@#############@##++#+#######'###'################################++++++++++++++++++#+#++
@###+####@@@@@@##@###@@@#@@@@@@@@@@@@@@@@@@@@@#@@#++#++##########++##@@@###@@@@@######@#@@###@@#++++++###+';:####@##@@#@@###+####+##+'#;#####+''#+:.+'::;',;.####+##@@#@@@@@@@@@@@@@@#####++##@#####+##########++###################################++++++++++++++++######+
#@###+####@@@@@@#@###@#@#@@@@@@@@@@@@@@@@@@@@@@@@##+#++++########++##@@@@##@@@@@@#######@#@@#@@#++++++####+':'###@##@##@@+#####+#++#+'#:##+##+''+'.:+:::+:.;###+####@@#@@@@@@@@@@@@@@@#####+##+###############+##++@###########################++###++++++++++#+++########+
#@#########@@@@@@####@#@##@##@@@@@@@@@@@@@@@@@@@@@##+#++#++###########@@@#+#@@@@########@@@##@@#''+++'#####++;+##@@@@#@#@+#####+++++''::##+##+'++:`'':..'`;####++###@@#@@@@@#@@##@@@@@@#+#####++#########+#######++##########@#################+####+++++++##+#+##########+
@@@@########@@@@@@########@##@@@@@@@@@@@@@@@@@@@@@@##++#########@#++##@@@@+#@@@@#########@###@@#+'+#+'###########@@@##@##+#####+''++';'+#+'+#''++,,+':`'.:'###+++####@@@@@@@@@#####@@@@@#+++++++###+'#######+++#############@@#################+####++++++####++##########+
##@@####@###@@@@@@#####@@+@#@@@@@@@@@@@@@@@@@@@@@@@@@####+#############@@@+#@@@@@############@@##'+#'+#######@@##@@######+#####;##+#'+'##+'+++'+'''+:..';'+###+'####@@@@@@@###@@@@@@@@@@@@###+####+''++#+'++++'''###########@@@################+####+++++######+##########+
+#@@@###@#####@@@@@#++##@##@##@@@@@@@@@@@@@@@@@@@@@@@@@+#########@#####@#@##@@@##############@@+##+#'+##################+'#####'#+'+;#'+#+'+#''+'''':`++';###++'#####@@@@@@#@@@#@@@@@@@@@@#####################++'##########@@@#####################++++##################+
+#@@@##+@@#@###@@@@#@##@@@#@####@#@@@@@@@@@@@@@@@@@@@#@++########@##++###@##@@#+#@#####@#####@@++#+#;+##################''#####+#+'+'+'++''++''++;+'.';''####++'#####@@@@##@###@@@@@@@@@@@@######+#+##########+##''#########@@@+####################+++########+#######+#++
+##@@##+#@######@@@@+###@@#@#####@@@@@@@@@@@@@@@@@@@@#@#+########@###'####@@####@@###########@@+++++;+##################;'#####+++''++'++''+'''+'''+'';;#####+++@####@@@@@#@@###@@@@@@@@@@@@##+++#++++#####+####++##########@@@+####################++#########+#######++++
###@@##+#@@######@@@@###@@##@###@#@@@@@@@@@@@@@@@@@@@#@#@+#+#########+##@@######@@##########@@@+'+++.+#################+;'#####+'+'#'';++''+'''';+';';;#@##+#+++@@@##@@@@@#@@###@@@@@@@@@@@@@@###++'+''####+++++++##########@@@########################################++++
#+#@@#@##@@#####@@@@@+###@#+@#####@@@@@@@@@@@@@@@@@@@@@@#+#+#########++##@@#+####@##########@@@+'+++,+#################+,######+++###''++'+''''';';;''+####+#'++##@@##@@@@#@@####@@@@@@@@@@@@@######+'''####++++++#########@###########################################+###
+###@####@@@######@@@####@#+######@@@@@@@@@@@@@@@@@@@@@@##+++########++###@###;###+########@@@@''+';;+#################+:#######++##+'+++'''''';;';;;;#####+#''+###@##@@@@@@@@###@#@@@@@@@@@@@######++';;+#+++####+#######@@@@#########################################+###
+###@####@@@#######@@@#@###+#@####@@@@@@@@@@@@@@@@@@@@@@##+###########'#####+#;+##@@#######@@@@''+';'#####+############+'#######+##+#'++''+''+';;;;;';#####+++''#@#@###@@@#@@#@###@@#@@@@@@@@@######++++##########'+#####@@@@@###############+############################+
+###@@##+#@@#######@@@@###@#######@@@@@@@@@@@@@@@@@@@@@@#@#####+######++####++#+#@#@######@@#@##'+'::#####++###########''#######+##++;+''++''';';;;;;+#######+''#@#@###@@@#@@#@######@@@@@@@@@####################+'#####@@@@@@@+##########################################
'+##@###+##@########@@@+##@#######@@@@@@@@@@@@@@@@@@@@@@@#@@++++######++####++####@@@####@@@#@##+'',:#######'#+########''#######+#+++;+'''+'''':';;;;+######++++###@@###@@#@##@@###@@@#@@@@@@@@##########++++++'+'''###+@#@@@@@@++#########################################
;+###@@#+##@@#@#####@@@+######@##@@@@@@@#@@@@@@@@@@@@@@@@@###+#+#######+#####+####@@@####@##@@+##+',:##++#############+''##++####++'+;;;''+''';+;;:;;#######'+++###@####@@@#######@@@@###@@@##@@@############+++''';';##@@@@@#@@###########################################
+'#@@@@#+#@@@@######@@@#@#@@#+@###@@@@@##@@@@@@@@@@@@@@@@@#@#+#+#######++#########@@@##@@###@@+++++,:##++#+'#######@##++'#@#+###++''+:+#''+++;+#':;;:+######+'++#########@###@###@###@@@@@@@@@########@@###############@@@##@@@@@#######################+##################
+'+@@@##++#@@##@#####@@####@@#@@##@@##@##@@@@@@@@@@@@@@@@@#@@+##########+######@####@@@#####@@+++';;;##+'++###########++'@#####+#++++'###'++''##+:;;;########'+''####@###@@##@##@####@@@@@@@@@@@@##@@@@##########@###@@#####@@@@@#+####################+++#################
#''#@@@#++#@@@#@#@##@@@@+##@##@@##@##+###@@@@@@@@@@@@@@@@@#@@###########+###########@#######@#++#';''##+'+#######@####++'@########++'##+#+++'###+:';'#@######+'''########@####+######@#@@@@@@@@@@#@@#@@@#########@#@@@######@@@@@#+###################++;+#################
#''#@@@####@@@#@##@#@#@@###@##+#####@#@@@#@@@@@@@@@@@@@@@@@@@###+#####@#####################@#+++';:'##++#############+;'##++#####++'##+##+++###+:';'#@#######''''####@#@@####+######@#@@@@@@@@@@@@@@#@@@@###@#@#@@@#@#####@@@@###+####################+''#################
+#'+@@@####@@@####@#@#@@@@#####@#######@###@@@@@@@@@@@@@@@@@@@#++######++###################@#'#+:;.###########+#######''+++#@##+##'+##++#+'#+++#;';'#@########++''###@@@@####+########@@@@@@@@@@@#@#@@@@@@@#@@@##@#@@#####@@#@@##+@####################++#################
+#''#@@@###@@@@#######@@@#########@+######@@@@@@@@@@@@@@@@@@@@#++###+####+#+################@@;#++:,#########+++######'+'#++####+##'+##++#+'#++;+'+''#@#########++''#@@@@#####+#@####@#@@@@@@@@#@#@@#@@@@@@#@@@@@@@@@@@@##@@##@@@##########################################
'++'##@@###@@@@#@####@@@@#####++##@##+#@+@##@@@@@@@@@@@@@@@@@@##+###+####+#++##++##@########@#:#+',,#@###+###+#+#####+##'#++####++#+;#+++#+'#++:+''+'#@@######+###@###########'########@@@@###@#######@@##@@@@@@@@@@#####@@@##@@@##@#######################################
'++'##@@###@@@@@@#####@@@######+###@#+#@##@@#@@@@@@@@@@@@@@@@@@#+#@######'#++###+##@###@######,#+',,@@@#++###+;#######++'#'+####+++#++#+'''+''':+'+#'########+++#############+'@#####@@#@@@##@@@##@######@@@@@##@@@@@@#@@@@####@##+########################################
''+'##@@###@#@@@@@@@#@@@@#@##@#####@#######@@@@@@@@@@@@@@@@@@@#@##@######'###+########@#####@+;#+#.;@@@#+####+#######@+';#;@@####++'#'#++';+''',+;##+#@#####++++######+######+;#@######@@######@#@@@@#@@@@@@@@###@@@@@@@@@@#+##@###########################################
''+'##@@##@###@@@@@@@@@@@@##@##@+@@@####@##@@@@@@@@@@@@@@@@@@@#@##@######+#+#++#####@@#####@##+++'`+@@@############+##+':##@@@###++'++#+'';+'''.#;#########+#++#######+######++@##@############@@#@@@@##@@@@####@@###@@@@@########+########################################
''++##@###@@###@@@@@@@@@@###@+###@@@@###@#+#@@@@@@@@@@@@@@@@@@#@@+#########+++'########@###@#+;++;`#@#@###########++@#';###@@@###+'';#+++''++':.#++##@@######++#######+######'+@@#########@#######@@@@##@@@@####@####@@@@##+@#####+########################################
''++##@###@#####@#@@@@@@@@##@+##@@@@@###@@+@@@@@@@@@@@@@@@@@@@#@@###########+#;#######@####@+''+#;,@@@@##########++##+;+##@@@@####'':++++'#++;..+#'##@@######+++#++###+######'+#@@@#######@@@#######@@####@###@#@#####@@@###@###@#+########################################
''++##@##@@#####@#@@@@@@@@##@+#+@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@#############'###########@#;''''';##@@########++'#@@+#+'#@@@@####'',;##++##+:`:##'+#@@######++##++##+#######+'#@@@#####@@@@@@####@@@#########@@######@@###@@@@############################################
';+###@##@##@#####@@@@@@@@##@##+@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@##@######@###+#######@###@#+';';;:##@@########+;##@##+';##@@#####+;,:##+##+;.`###''##@######++#+#+++###+####+'##@@@##@#@@@@###@@#@#@@@####@@@@#@####@@##+##@@@@####+######################################
;;+##@@##@##########@@@@@@@#@@#+@@@##@@@@@@@##@@@@@@@@@@@@@@@@@@@####+#####@##########@###@#+';',:'###@@####+########+'';###@@####';,,##+##',.`##+';#########+##+#+++###+####+'#@@@@@#@@@@@@@@#@@@@###@@####@@#@@###@#@######@@############################################
;;+##@##@@##########@@@@@@#@#@##@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@####+##@#############@######'';,.+###@@###+++#######+;::###@@@###'',,####+':.:#'+':###@####+##++#++#########+'#@@@@@@@###@##@####@#############@@###@###@#@#@###+#########################################
';+#@@#@@@#####+######@@@@@@#@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##+###@@#+++##############+#';:,.#####@##+##@#####@#+:;'@@###@#+#'+:,####+;,`##'':,###@#######+++++###+#####+'+#@@@@@###@########@####@#######@@###@####@###@###+#########################################
'+##@@#@#############@@@@@#@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##+###@@#++++#######@###@#+++;:`,#####@#######@####+'':#@###@@#+#+';:#####'..##++:.#########++'+++##++######+';#@@@@@#########@#######@@#+####@########@@##@@#@@##########################################
++##@@#@####@########@@@@#+#####@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@#####@@#+#+++##########@+'++;,`:#####@@###+##@+###+';:+@####@@+##;;:#####+`##+';,.#####@###++'++###+;#######'##@@@@@@##@########@@####@##@##@@######@@@@##@##############################################
+###@@#@####@@@@###@#@@@@#+@###@@@@@@@@@@#@@#@@@@@@@@@@@@@#@@@@@@######@@#+#+++###@@+@##@@;''';:.'#####@@#######+++#+:,:######@@###'':####+;,+#'+,:.#####@#####+#++#++#######+#+#@@@#@@@############@####@@##@########@@@##@@##@#+#########################################
###@@#########@@@@@@+@@@@#+@@#+@@@@#@@@@@@@@#@#@@@@@@@@@@@#@@@@@@@#####@@####+'######@#@@@;'+#':.+######@#######+####;,:#####@@@###++'####+.##++;;:,############++++;########+#+#@@@@@@@##@#########@####@@@##@#####@@@@##@#@#@##+#########################################
###@@###+######@@@@@#@@@@#+@@#+@#@##@@@@@@#@#@#@@@@@@@@@@###@@@@@@###########+'###########''#+;;,#######@@####++###++,':#####@#@@####,####++###+'+:;######@#####+++'+###+###+#+'#@@@@@@@@#######+########@@@####+#@@@@####@######+#########################################
##@#@###+###@#@@@@#@@#@@@##@###@#@##@@@@@@#@#@##@@@@@@@@@@##@@@@@@###########++########@@#''+'+:;#######@##########+;':+#####@#@@###++###+,####+'';+#######@#@###+++++++#####++'+@@@@@@@@@#@####+####@####@####+#@@######@@@#@@##+###+#####################################
##@##+#++######@@@#@@#@@@##@@##@###@@@@@@@###@##@@@@@@@@@@##@@@#@@####@######++#######@@#+'++:;'########@@#####@##+#':,######@@@@@##+###@+#####++#;###############+++++######++'+#@@@@#@@@######+#####@@@@@#############@@#@#@####+##+#####################################
#####+#++#######@@#@@#@@@#@@@##@@#+@@@@@@@###@##@@@@@@@@@###@@@@@@@###@###@##++#######@@#+++'::,######+##@#####@##++:.,######@@@@###+####+#######+'#########@######+++#######++++#@@@##@@@@#########@######@@#########@@##@#@@####+##+#####################################
+###+##++#####+#@@@###@@@#@###@@@++@@@@@@@@######@@@@@@@@####@@@@@@###@###@##++#######@@++'+;,'.#########@########++,`#######@@@@###+##########+#+'##########@####+'+++######+++##@@@@##@@@@#@#########@#############@@#####@########+#####################################
+###'#++########@@####@@@#@@##@@@+#@@@@@@@@##@#+#@@@@@@@@####@@@@@@#@@#######+########@#;''+;.;:#########@@####@#++#:,########@##@@'#############:################+#+++##+#####++@#@@@@#@@@@@@######@#######@##@####@@#####@@########+#####################################
###+'#++#######@@@@#@#@@@#@@@#@@#+@@@@@@@@@####+#@@@@@@#@####@@@@###+#@###############@#';+;:.,+#########@@######+#'.'#########@@##'###########+#;############@####++++#'#####++'##@#@##@@@@@@###############@#+###@@######@#########'#####################################
###'#++#######@@@@@###@@@#@#@#@@##@@@@@@#@@####+@@@@@@@#@####@@@@@#+++#######+#######@#;';',,:.#####+####@@@#####++,.##########@@###############:###################++#+######++'#@@#@@@#@@@@@@##############@####@@@@#####################################################
###+#++###+###@@@@@#@+@@@@###@@@+@@@#@@@#@@###+'@@@@@@@@@####@@@@##++#@@#####'#######@#+:+;:..:##########@##@#@##++`;#########@#@#,###########+#+##############@####+++#++####+++###@@##@@@@@@@@##############@####@#@###############+#####################################
#####++########@@@@###@@@@#@+@@@#@@@#@@@@@@##@++@@@@@@@@@####@@@@##'##@##+##++#######@++;++;:`+##########@#@@@###+:`#########@@@#+#############'################@###+#########+++####@##@@@@@@@@###############@#'@@################++#####################################
####+++#########@@@#+@@@@#@@#@@@@#@##@@@@@@###'#@@@@@@@@@@###@@@@##'#@@#####+#######@@++++:,,,###########@@@####++:;#########@@@@#############+#################@#############+'+###@@###@@@@@@@@##@######@######+######@############+#####################################
@##+++#####@####@#@@'@@@@#@##@@###@@###@@@@#@+'@@@@@@@@@@####@@@###'#@@#####'#+####@@#'#++,,.+###########@#####+#;,###########@@############@#+#############################@#+'+###@@####@@@@@@@@###################+@@####@########'#####################################
####+#####+######@##@@@@#@@#@@@###@####@@@@##'+@@@@@@@@@@####@@@@##+#@#@####+######@@+'++',`.############@###@#++`'###########@@@############+###################@#########@##+'+###@@#####@@@@@@@@#######@####@######@####@#####+###'##################################@##
####+################@@@#@@#@@#########@@@###'#@@@@@@@@@@####@@@@##+#@@#####+#####@@@;'#':,,'###########@@##@##+,.############@@@################################@@#####@#####'#+###@@#####@#@@@@@@#######@@####@##########@@####++##'##########################+##########
#####+#######+#######@@@#@##@#####@#####@@#@#+@@@@@@@@@@@'###@@@@##+#@#####++#####@@+;'++;:.############@@####++.#############@@@###@###############@############@@@#########++'############@@#@@@@@#@#@##@@#######+##############+##'##########################++#########
#################@###@@@@@#@@###########@@##+#@@@@@@@#@@@####@@@@##+#######'####@#@@:';':;,##############@@####,;##############@@#######+#############+###########@@########@+''###@@@#########@@@@@#######@##+#####+####@#######++##;#########################+'++####@@##
#####################@@@@##@@#####@#####@@##+#@@@@@@@@@@@####@@@@##########'#####@##;;::,:`############@@#@@@#;.###############@@@###@################+############@@#@######+:'#############@#@@@@@@#########+########@@########+++++#########################+++++##@####
#####################@@#@##@@###########@#@+##@@@@@@##@@@@###@@@@#+########+###@@###;;:;;,;############@#@#@##`+###############@@@###@##########@###@#+############@@########''+##@##@@######@@#@@@@###@@#####+########@#########'##+###########################+'++##@@#@@
#####################@@#@##@@###########@####@@@@@@@##@@@@+##@@@@##########+####@##++::.;`###########+#@@@#@#.;#######################################'############@@####@###''###@###@#########@@@@##@@###########;####@#########+#'+##########################+++##@@@@#@
########@+##########@@@@##@@@###########@####@@@@@@@@#@@@@###@@@@####@##########@+'+#:``;;###########+#@##@##.#################################@######+############@@####@###;:###@###############@@@@@######@#####++###@###########'###########################++###@@@@#@
###################@@@#@##@@@###########@####@@@@@@@@#@@@@###@@@@###@##########@##+++;`..+############@#@#@#'####################@###################@##############@######++:'###@###@###########@@@@#######@#####+###@########+###'###############################@@@@@##
########@@##########@@#@###@@@+##############@@#@@@@@#@@@@###@@@#################'+':+`,'#############@#@##;#####################@@#################################@@@##@#+',########@##+#########@@@#######@####++############+###;###############################@@@@###
########@@##########@#####@@#################@@#@@@@@@@@@#+##@@@###@#####+######+++:,+.:+##########@######+:#####################@@@######;##########@##############@@###@#++;+##########+#######@@@@@###@@#@###++#################'+##############################@@@@####
#####@##############@#@#@##@#################@@#@@@@@@@@@++##@@@########+#######:+;::::+#############@#@##.#######################@@######;####@#####################@#####+.++########@##########@@@@###########'##############+##++##############################@@@#####
#####@#####################@####+###########@@##@@@@#@@@@+#+#@@@########+######'++::.:'+##############@##:#########################@@##########@##@#################@#####+;`++#####+###############@@@##+#######+###+##+#######+##+;##############################@@@#####
##@##@#################@########+###########@###@@##@@@@#+#;@@@@##+#@@##+######,+':,`;##############@###'+##########################@##########@#######+###########@@###@#+.#+#######################@@##++######++##'#+########+##+;#################+;##########@@@@#####
##@#@##############@########################@@+#+#@@@@@###+;#@@##+##@@#+######+:+;:`,+#################++#######################+#@##############@####@+###+#######@@####++:++#######+#############@#@@@##+#####+#+#############+##+'#################'+##########@@@@#####
#@#################@######@##################@#####@###@+#+'#@@#####@########+++';,.:##############@##++########################;#@##############++####+###########@@@####,#+########+###############@@@########+#++############;##+'#################;###########@@@######
#@@@##############@########################@###+###@@#@@+#+##@@#+##@@#+######+'+;;.:###########@#+#@#+###############################@#####+####@++################@@##@#'.++########+##############@@@@@########++++#########@#'##'+################;'#+#########@@#######
#@@@##############@########################@#@#####@###@'#+#@@@#+##@##+#####+''+:,,;############+#@#+##+#######################+###########+#####++###@###############@##`#+########################@@@@@#########+#+#########@###+;#################'##########@@@@#######
#@##############################+#############+#######@@+#+#@@####@@##+#####+':';.;#############+##############################+##@####+##+######++###+############@@###',+##########################@@@@#########++'####+#####++##:######+#####################@@@########
##@@@############@########################@@+######@###@+###@@#+#####+######';:;':+#############+####@#+################################+#+######++########+######@#####+#+##########################@@@@##########++##########+#+#;#####++#####################@@@@@#+####
#@#@#############@#########################@#+#####@@#######@##+##@########'';:::'#####+########+++####+#######################+#'#@###+##'######+#######+#+######@####;++############+###'##########@@@@@###@@@@###+####@#######++'#####++####################@@@@@@@#####
#@@#@###########@#########################@+###############@@###@@####@###+'':,,:######+##@######++###@#######################+#+######++#++'#####@#######++######@###+.###############+##+###########@#@@###+##@#@###############+'#####+####################@@@@#@@@###+#
##@#############@#########################@#################@#+#@@+#######;;::,.'#####+##########+#######+####################+#'######++#++;######+######++#####@####:++##############+##############@#@@####################+##++'##############;############@@@#@@#+##+#
#@############################################################+#@########+';;,,:##@#+####################+#####################+###########++######'######++#####@###+.+###############+##############@@#@##+####+++#@########+#+++##############;############@@@#####+####
#@#############@#########################@###########@##########@###+###+++;:,,###@@'+###################+###################+#'####@###+##########+#######+####@@##+,#################+##############@@#@##+##@#+#++#########+###'#############'+############@@@##########
#################@#######################################@@##+#@########'++::,'#####'##++###@#######+####+####################+########+##+#########+#####+########++##################################@#########+#++########++##+;###########################@@###########
##################+######################################@@###@#####@##;''';,;####@#'+#++##########+#####+##################+#+########+##++######@#######++#######++#####################++###########@@########+#+'########'###+;#########################@############'#
#################@#######################################@@###@#######'';;'::###+###++#############++####++##################+#########+#+++#####@########+#######+'################+#####++#######;::::::::,::::,:,,::::::::,:::,,::::::::::::,::::::::::::::::::::::,,:,:
#################@######################################@@###@##+####+';;;''#########'#######@######+#####+################+#+########@##+++#####@###+####;#######+#####################+#++#######:::'::':'::;:::::,:'''::;:;'':;'':''':''':'::'::''':'''::;++::++:'::':::
########################################################@@#+@@#####@+''';;;+####+####+########@############+################+###########++++######@##+####;########################+########+######:::'++;;:::'+':';;::,,::::',,,'++:':;:'++:''';::''':'++::;++::++:'::':::
################@@#####################################@####@@#+##@#+;'';;'+#########+###'#################'################+###########+++++#####@##++###'###############################+########:::::::::,,:::::,,::,::::,::,,,:::::::::::::::::::::::::::::::::::,,,:::