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