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