_            __  _                      
   (_)___  _____/ /_(_) ____ ___  ____  ___ 
  / / __ \/ ___/ __/ / / __ `__ \/ __ \/ _ \
 / / / / (__  ) /_/ / / / / / / / /_/ /  __/
/_/_/ /_/____/\__/_(_)_/ /_/ /_/\____/\___/ 
contact me at insti.moe ;)

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

 There are pros and cons
 Just weighing options_

    - "The Living Meme" Eiffel