______ __ ______ __ __ ______ ______ ______ ______ __ __ ______
/\ == \ /\ \ /\ __ \ /\ "-.\ \ /\ ___\ /\__ _\ /\ == \ /\ ___\ /\ "-.\ \ /\ ___\
\ \ _-/ \ \ \____ \ \ __ \ \ \ \-. \ \ \ __\ \/_/\ \/ \ \ __< \ \ __\ \ \ \-. \ \ \ __\
\ \_\ \ \_____\ \ \_\ \_\ \ \_\\"\_\ \ \_____\ \ \_\ \ \_____\ \ \_____\ \ \_\\"\_\ \ \_____\
\/_/ \/_____/ \/_/\/_/ \/_/ \/_/ \/_____/ \/_/ \/_____/ \/_____/ \/_/ \/_/ \/_____/
,+####+++++',';;`
;+###++#+++'+++;++;;';,`
`++#++++++#+++++++++''+'''+'.
+++++++++++++##+++++++++++''';,:.
+'''++++++++##++++++++++''';;''';';;:`
.+;'''++++++++++++++++++#+##+',':;.',:;';,
`+;:;''+'++++++++++++++++++++;'''';:;';::;;:,
`,;:;'''+'++++'+''''+'++++++++++;;'',;:'';;;;,.
,;;:;;'''+++''+'+''++'++++++++++++++;::::.'''':;,`
.::;;;'''''''''''''''''++++'+''';;;;+++.;+.;;'':'..
.:;'''''''''';;';;'';''''''++++++++';:.::`,,:;:;';',
,;''''''';;;;;;;:::;;;:;;;''''';;'';'';:'..`...::;.;;
`,;'''';;;;;;;;::,,:::;;;;:;;;''';';::,,:`,`:..:.,,,:.,+
,;'';;;;';;;;;::::::,:::,,,,:,,:;;;;'';''';;':::.:,:,::;:'
.;''';;;;;;;;;;::::,,:,,,,,,,,,,,,,,,::;;;;;;:;:;:;;.::;::;;'
:'''';;;;;;;;;;;::::,,,,,,,,........,,,,::;;;'';;;;;'';,''::,;.
.;''';;;;;;';;;;:::::,,,,,,,.................,,:::,,:;:'',;';,:;`
,'''';;;;;;''';;;:::::,,,,,,...........``......,,,:,,:::,,'::;,,.:
`';+';;;;;;;;'';;;;:::::,,,,,,........``````.....,,,,:,,:;;.,::;,,``
,';';;;;;'';;'';;;;;;::::,,,,,..........```.````..,:,:,.,::;:.,,;.::
;:';;;;;';'''';;;;:;;:::::,,,,.......`.`...``````..,,,,.,.:.:;...;,:.
`,;;;;;;;;;;''';';;;;;;::::,,,,......```..`.``````...,,,,,,,;,.:.`,:,,
:;:;;;;;'';;''''';;;;;:::::,,,......```....``` ``....,,.,,:.::.:,`:,,
;;;;;;;;;'''''';;;;;;;;:::,,,,,.....`.`.`.```````....,,,,.,,:::,,:,,,,
`':;;;;;;;;'''''';';;;;;;:::,,,.......``````````````...,..,,.,::,,,::,,
:;;;;;;;;;;'''''''''';;;;:::,,,......````.```````````.`...,.,.,::,:,,,.
;:;;;;;;;';''''''''''';;;;::,,,,,...````````````````````.`.,..::,:..,,.
,;:;;;;;;;;'''''''''''';;;;::,,,,,,...`````````````````.``..`,,,,::,.,..
:::;;;;;';''''''''''''';;;:::,,,,,,.....`.```````````````.`....,,::,....
;:;;;;;'''''''''''''''';;;:::,,,,,,....````````````````````....,.,,.....
::;;;;;;;'';''''''''''';;;:::,,.,,,...`..`````````` ````````.`...:,,.,``
`::;;;;;;;'''''''''''''';;;:::,,,,,,,....```````` ` ````````.``.,..,,..`.
`::;;;;;;;'''''''''''''';;;::,,,,,,,.....````````````` ```.```.....,,...`
.::;;;;;;;';''''''''''';;;::,,,,,..,......`````````````````````.....,.`.`
,::;;;;;;;;'''''''''''';;;::,,,,..........`.```````` ``````````.``.,.``.
.:;;;;;;;;;';'''''''''';;;::,,,,..........`````````````` ``````.`.....`,
.:;;;;;;;;;;;;'''''''''';;::,,,,,..........```````````````````..``.....,
`:;;;;;;;;;'';;';';;;''';;;:,:,,.............````````````.``.````.......
:;;;;;;;'''''';;';;''''';;:,:,,,.........````````````````````..`......`
:;;;;;;'''''''';''''''''';;::,,,.........``..````````````````.`.....`.`
:;;;;;'''''''''''''''''''';;:,,,......```.`.``````````````..`.........`
::;;;''''''''''''''''''''';;;:,,,......`````````````````.``.```..`...`
::;;''''++'''''''''''''''''';;;::,....````.``````````````.`````..`..``
;;;'+++++++++''''''++'++'++'''';::,...```````````````````````.``...`..
`'''+++###++++''''''+++++++++++'';;:,,...```````.````````````..`.``.`.`
++++++++########++++++''''''+++++#######+++++++++'';,.`..````````````.....`...
.+#+#. `''++++######+''''''+###++++++'''';::;'+++''+':+:::;;::::;::,..::...`.
`##+####'.''+++++######++++###+++++++++++'';;:,,:+++++':';;':;;;;;;;;';::::..,.``
+# :+###+''++#++############;++++########++';:,,,+++++';;;;;;;;;;''''';;':,,.````
++ ''++######+########++++####++#####++':,,'++:;;'''''';,`````````.`...;';.
;' ;'##++############+'++++###+'#####+++#;,;++''''''':.``` ``````...,.'''':
`' ;'+++++###########'+'++++++++++';:,:+++''++'''';,.````` `````..,,,;;''';
+ :'+'++++++##@''''#'++'+++++++'+';;;;'+++'''':,..`.````````````.,...`;'';
+ ,''''++++###';;:,++'+''+++++++'''''''';;,':.......`````` ``.``..``` `;';
+ ,;''+++###+#'';,.:+;''''+++++++++'';:....'.....``.```````.`` `,., ` `:;;
`: .;'''++++++';;:,..+`,:;'''''''''';;:,,`,.+.....```````````````,';:.` .;;`
; ,;''+'+++++';;:,,.,:,,,;''''''';;;,,,...,+..````````````.``. `:';::. `;:
' :;''''++''';;;::,,.+,;;;'''';,:::::,,,..::````.````````````.``;';;:,` ,:
: ;'''''''';';;::;;;:'+';;;;::,,,,,,,,....'````````````````..`` .;;;::.`.,
': ;'''''''';;;,,:;;;:;+::,:::::::,,,,....,'``````````````````````;;;:,``:.
+: ;''''''';;;:,,..:::::+.,,:::::::,,.....'```````.```````````````::;:,`,:`
;+;:;''''''#;;;;,,.`.:,,:;';:::;:::::,,,..'.``````````````````````.::::,`:.
`########+;;;;,..``,,:,:;'++;::;;;:::'++````````````````````````:::::,.,`
;''+++++;;;;:,.```.::,,:++++######+;:,..``````````````````````.::::,`,.
;''''+++;;;;;,.````,:,,,+++++++++';;,,,..`````````````````.`.`.:,``...`
.;''''++';;';;:....``:::,++++++++''';::,..`````````````````.````.,```..
:;''''+++''''':,,,,.,;;;'++++++++'''';::,...``````````````..````.,.````
;;'''++++''''';,,:'++++#++++++++++''';;::,..``````````````.```.``,.````
;''''+++++++++',,+++++++++++''++++++'';;:,,...```````````.````..`,..```
;'''++++''++'++;++++''''''++''+++++++'';;::,...``````````..```..`.,..`
:'''+++'++++++++++++'''.+;;'++++++++++';;;::,...```````````...`,.`..``
,'''++++++++#++++++;;';,+;'+++++++++'''';,::,,...````````.`....:,....
`''''++++++++++++++';;;:':;;;++++++++''';::,:,,...```````.`...`.::,,
''''+++++++++++++++;';;';:;'+++#'++'';;;:,,:,,....``....`..,..`````
''''+++++++++++''++++''';;;''+++;::;':,::,,,,,,..............``````
''''+###+++++++++++++++++++++###'::;;;,,,,.,,,,.`...,..`.`.,,``````
`;;;'+#########################++',,';;,.,.,,:,,,...`,,..,....``````
.;;''+####+++++++++++';;''''''++++;;;.;,,..,,..,,,...,,,,,,..```````
,;;''++#+++''++++'++''::;;;''''+++';'';,,.,,,:,,:,...,:,,,,.,.``````
.;''++++++'''''+'++''';;;:;;'''''+';'';:..,::,:,.,,,,:,,:,....``````
,'''+'+++'''''''''''';:::,;;'''''++:;';:,,,:::::,:,::,.:,:,,.````````
.;''+++++'''''''''';':::,;;;;''''++:;';;,,::;::,.::;,,,,,:,,.````````
;+''++++'''''''';;';::;,::,;;'''++;:'':,:;:;;:;,:,:.::,,:,..````````
:'++###+''''''''':';:::,:;;;:;''++';';,::;'';;::::,:::,::,,````````.
:++++#++''''''';;,;:,,,.,.::;;;'++''';;::''':,;;:;:;,:,;,,``````````
:++++#++'''''''';;::,.....,;;;'';;::;;;;:'+;;:;;;;::::;;:,.`````````
`;+#++++''''''';';:;:,,..,,;'';'+'':';;;;';;;;:;;;;::;;;;.``````````
`.'+#++++''';';;';,:,,,,,,::;:'''''''::;:';;;::':;';';;:..``````````
` `'++##++''';':':;:;::,,:;;;'':;:'''';;:'';;,;::';'+'';,.````````````
.;+#++++''''''''::;;:,::;':';''++'''';;'+'':;:;+'''';:,..```````````
``,+++++#'';'''''',:;::::;'';;'';+'+''';:+';;''''++;',:..```````.````
`..'+++++++;'';:';;'',;;:';;;;';'+;+':';,'';'';+''';::..`````````````. ,'+++''',
,+++++++++'++'';';+'';'':'';,+#'+';;':;';''''+'+':,,..``.``````````` ;++++++++++'
`,'+++#++'+++''+''+'''''+'''';;+';'+;;';;+++;'++'::,,.....```.```````..+++++++++++++;
.+++##+++++++'#+'+'';+++';'+;'+'+'''''''++''+'';:,,,....```.```````:++++++++++++++++`
`;++++#+###+#'#++##'+++++''''+++#;++;;;+++'++''::,,,...`````````.'++#+++++++++#++++++
;+#++++####+'#+###;+;+++'''+++++''';;'++'+'';;::,,..,.```````:+#####+++++++++##+++++`
++'+#++####'#++#++++#++#++'''#;++';'+#+';'';;::,,.,.```.`,'########+++++++#+###++++;
,''++#+##########+#+++;##'++'+''''''+++++'';::,,,:,....,'##########+++++++#######+++
+++++####++####++##+#+#+#+''+;;''''+#+++'';:::::,..,:+######@#@@###++++#+#######+++
,+++######+#####+####'#+++;+'''''+++#++++';:,;;:,:;+#######@@@@###+++#+#++######+++`
`::++#+#####+#'+#++##''#+'++'++';+;#++++'';:';;;'+#########@@@@##+++++#+++++#+##+++:
`+,######+##+##'+##'#++++++'++++'+'+++++';:'''''#@@######@@@@##+##++++'+++++++++##++
,++#++##++###'##+'''++##+++++#+##++++++'''''''#@@######@@@@####+#++++'++'+'++++++++
`;,;##+###+##'+#++++++#+#+'##+#+##++++++#+'''+@@########@######+##++'++++''+'+++++#+:
`,:;#;++#+#'######++'++++#++####++++++#+++++@@@@##++####@######+##++++++'+''''''+++'
``.`.,:'##++######+#++'+####+++++++++++++++@@@@@@########@#############+++''+'+''+++`
`. :;++#+#+#####+++####+++++++++++++++@@@@@@@@#@#@#@#################++++++'+'++;
`.`;;;:,.;++++++++++++++++++++++++@@@@@@@@@@@@@@@###################++++++++''
`` '++++++++++++++++++++++@@@@@@@@@@@@@@@@###############+###+++++++++++'`
'+++++++++++++++++++++@@@@@@@@@@@@@@@@@@#@#######+###+++++++++++++++++++:
;'+++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@#####+######+#++++++++++++++++++'
`''+++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@##+##########++++++++++++++++++++;
''++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@#######+++#####++++'++++++#++++++++
'''++'''''''''++++@@@@@@@@@@@@@@@@@@@@@##########++++++####++++++++#++#+++++
.''''''''''''''++@@@@@@@@@@@@@@@@@@@#@#######+###+++'+++++#+++++++++#+#+++++
''''''''''+++++@@@@@@@@@@@@@@#@@@########@##########+++++++++++++++##++++++
#''''''''''+++#@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@####+++++++++++++##+++
##+'++'''++++###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###++++#@@@@##+++++++++++#++++
`########@@#@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@#######+++++++#@@@##++'+++++++++++
;#######@@#@#@@#@@#@@@@@@@@@@@@@@@@@@@@@@@#########+#++++++##@@@###+'++++++#++
#####@##@#@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@########+##++++++++++@@@@#++++++++++
`+#+##@@###@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@############++++++++++++#@@@##+'+++##+
+++#++++##@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@#@##############++++++++++++#@@@#++'++##
+++++##@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############+#+++++++++++++#@#@#+++#+
+++###@@#@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@###############++++++++++++++++@#@#++#+
++++#@@@#@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@#@############++##+++++++++++++++++##@#+++
+++#@+#@#@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@#@############+++++++++++++++++++++#+#@#++
`+'#@###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@###########+##+#++++++++++++++++++@'#@#+
;++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############++###++++++++++++++++++@'#@#
+'#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############+##++++++++++++++++++++#+#@
+#@@@@@@@@@@@@@@@#@@@@@@#@@@@@@@#@@@@@@@@###########+#######+++++++++++++++++++#++@
`+@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@#@@@@@@@#####################++++++++++++++++++++@++
;#@@@@@@@@@@@@@@@@@@@@@@##@@@@###@@@@@@##@############++##+##+++++++++++++++++++++++
+#@@@@@@@@@@@@@@@@@@@@@@@#@@@@#@@@@@@##@##@###################++++++++++++++++++++#'
##@@@@@@@@@@@@@@@@@@@#@@@##@##@@@@@@@#@##@#@##################+++++++++++++++++++++@
#++@@@@@@@@@@@@@@@@@@@@##@@#@@@@@@@@#@##@######################+++++++++++++++++++++
,#:##@@@@@@#@@@@@@@@@@@@@###@@@@#@@@#####@@@###################++++++++++++++++++++++
'#,##@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@####@@@@@@@##################+++++++++++++++++++++
#+;##@@@@@#@@@@@@@@@@@@###@@@@#@@@####@@@#@@@@##################+++++++++++++++++++++
#''##@@@@#@@@@@@@@@@@@@#@@@@@@@@@####@@@##@@@@##################+++++++++++++++++++++
`#:###@@@#@@@@@@@@@@@@@##@@@@@#@@####@@@##@@@@@@################++++++++++++++++++++++
;#:@##@@@@@@@@@@@@@@@@@###@@@@@@##@@@@@##@@@@@@##################+++++++++++++++++++++
+++@#@@#@@@@@@@@@@@@@@@#@@@@@@@###@@@@#@@@@@@@@@#################+++++++++++++++++++++
#'#@###@@@@@@@@@@@@@@###@@@@@@@#@@@@@#@@@@@@@@@@@#################++++++++++++++++++++
#+@###@@@@@@@@#@@@@@@@@#@@@@@@##@@@@@@@@@@@@@@@@@################+++++++++++++++++++++
`@#@##@@@@@@@@@@@@@@@##@#@@@@@##@@@@@@@@@@@@@@@@@@@###############++##+++++++++++++++++
:@#@##@@@@@@@@@@@@@@#@@@#@@@@@#@@@@@@@@@@@@@@@@@@@#####################++++++++++++++++
+#@@#@@@@@@@@@@@@#@@@@@@#@@@@#@@@@@@@@@@@@@@@@@@@@##@##################++++++++++++++++