______ _
| ____(_)
| |__ ___ _____
| __| | \ \ / / _ \
| | | |\ V / __/
|_| _ |_| \_/ \___| _
| \ | (_) | | | |
| \| |_ __ _| |__ | |_ ___
| . ` | |/ _` | '_ \| __/ __|
| |\ | | (_| | | | | |_\__ \
|_| \_|_|\__, |_| |_|\__|___/
(_) __/ |
_ _ __ |___/
| | '_ \
| | | | |
|_|_| |_| _ _
| | (_) | |
| | __ ___ ____ _ ___ ___ _ __ _ _ __ | |_
_ | |/ _` \ \ / / _` / __|/ __| '__| | '_ \| __|
| |__| | (_| |\ V / (_| \__ \ (__| | | | |_) | |_
\____/ \__,_| \_/ \__,_|___/\___|_| |_| .__/ \__|
| |
|_|
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###@@@@@@@@+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+##@@@@@@#@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#++@@@@@#####@#@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+#@@@@###@###@#@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@#@##@@@@@#@+######@@+;+@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###@@@#@@##+@##@@#`';+@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@#`.@###@@@#@##+#@##@@#'#:,@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@+` `@@@@@@@@@#+@##@@@@@+;,@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@' @@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@+++##+#@@@@@@@@@@@@';;@@@@@@@@@@@@@###+#@@@##@@@@@@@@@@@@@@@@@@@@@@
@@@@@@##########@@@@@@@@@@@###@@@@@#@++++++###@@@@#####@@@@@@##+++##@@@@@@@
@@@@@#+++##++'+#+@@@@@@@@@#++##@@@@@@@###@##@@@@#########@@#+#+++++##@@@@@@
@@@@#+++++#++++++#@@@@@##@@#####@#@@@@@@@###############@###+##+++++###@@@@
@@@#+#####@@@#++###@@@########+#+++++++#++####+#######@@@@#+#####++++###@@@
@@#+###@@####@#++##@@##########+#+++#++++####++#######@@@#++##@@@#++++++#@@
@@###@@#########'+#@######+#++++#'+++++++++#+#++#+####@@#++#@@@@@@@@#'++#@@
@@++@@########+@#+@@#####++#++#+++++++++++++++++++####@@++@######@@@@#+##@@
@@#+@@########+#+#@#@#####+++#+++++++++++++++++++++++#@@+########@@@@@#+#@@
@@#+@######++++#+@@@######++###''+''+++++++++++++++++++@+@########@@@@#+#@@
@@#++@####+++++##@@@########++#+'+''++++++++++'+''+++++@+##+++#####@@@#+##@
@@@+'@#####+++++@@@###########+++++''+++++''''''''++++#@@'@#++#####@@@#+#@@
@@@++'@####+++#@@@@####+#######+++++'+++++++''''''+'+++@@+@#+++####@@@+'#@@
@@@@++'#####++#@@@############+#+++++''++++'+'''''+++++@@#+@#+#####@@#++#@@
@@@@#++'+@#####@@@##+###+#######+++++++''++++''+''+++++@#@'##+####@@#++#@@@
@@@@@@#+++####@@@@##@@@@@@@#+###+#+++''++#@@@+'''''''++#@@#'@####@###++@@@@
@@@@@@@#+++#++@@@@#@@@@@@@@@@@##+#+++#@@@@@@@@@''''''+++@@@++#####++++#@@@@
@@@@@@@@####@@@@@@##@@@@@@@@@@+#+++#@@@@@@@@@@@'+++''''++#@#++###++##@@@@@@
@@@@@@@@@@@@@@@@@###@@@######+++++++@@@@@@@@@@#+'''''''+++#@@##+++##@@@@@@@
@@@@@@@@@@@@@@@@@#######+++++++++++++++++++#@@+++'''+'''+++@@@##@@@@@@@@@@@
@@@@@@@@@@@@@@@@@#######@@@@++++#++'+++#@#+++'+++'''''''+++#####@@@@@@@@@@@
@@@@@@@@@@@@@@@@#######@@@@#@#+++++++#@@#@@@#+''''+++++'++##+###@@@@@@@@@@@
@@@@@@@@@@@@@@@@######@@@@@@@@#++++++@@@@@@@@#'''+'+++'++++++###@@@@@@@@@@@
@@@@@@@@@@@@@@@@@####@@@#,:@@@#+++++#@@@@@@+@@#'+''+'++++++######@@@@@@@@@@
@@@@@@@@@@@@@@@#@###+@@@@.`#@@@#++++#@:`:;@:@@@+'+'''+'++########@@@@@@@@@@
@@@@@@@@@@@@@@@@@###+@@@@, :@@@##++'#@+` @@':@@+'+'''''++++#######@@@@@@@@@
@@@@@@@@@@@@@@######+#@@@+``@@@###++#@@. ,@@++'+'''+++++++#####@@@@@@@@@
@@@@@@@@@@@@@@######++@@@@'#@@@++##+#@@+` @@@+'+'''++'++++++#####@@@@@@@@
@@@@@@@@@@@@@@@######+@@@@@@@@@@@@@+#@@@#,`;@@@+'+''''''+++++#+####@@@@@@@@
@@@@@@@@@@@@@@@######++@@@@@@@@@@@@@@@@#@@@@@@++''''+'+'+++++++#+##@@@@@@@@
@@@@@@@@@@@@@@######@@@@@@@@@@@@@@@@@@@@@@@##+++''''++'''''++++####@@@@@@@@
@@@@@@@@@@@@@@@@@@@@###@@@@@@@@@@@@@@@@########++'++'+'''++'+++####@@@@@@@@
@@@@@@@@@@@@@@@##@####+@@@@@@@@@@@@@#@##++++++#+#++'+'+'''++++#####@@@@@@@@
@@@@@@@@@@@@@@##@####++#@@@@@@@@@@'#@#+++++++++++++''++''+++++#####@@@@@@@@
@@@@@@@@@@@@@@#@@###+++++@@@@@@@@@@@+++++'''++'+++++'''++++++#####@@@@@@@@@
@@@@@@@@@@@@@@#@##++++++++#@@@@@@@#++'++''+''''+'+++''+'++++#####@@@@@@@@@@
@@@@@@@@@@@@@@#@###++++++++'''##++'''''''''';''''''++#+++++##@###@@@@@@@@@@
@@@@@@@@@@@@@@####@+++++++'';'##'+''''''';'''#'''''+#+#+#+##@@#@@@@@@@@@@@@
@@@@@@@@@@@@@@###+++++++++''';#+'''''''''#';;';;'''+#++####@@@@@@@@@@@@@@@#
@@@@@@@@@@@@@@##@+++++'+'+''''++'''''''''''';;''';'+#+##@##@@@@@@@@@@@@@@##
@@@@@@@@@@@@@@###+#+++'++'''';#++'''';;'';''#;;;''++#####+#@@@@@@@@@@@@@@##
@@@@@@@@@@@@@@@###++++'+++''''#+''''''''''';''''''++####++#@@@@@@@@@@@@@##@
@@@@@@@@@@@@@@@###+++++++++'''+++'''''''''';'''''++#@#@#++#@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@####++++++''+'++++'''''''''''+''+++##@#+++#@@@@@@@@@@@@@#@@
@@@@@@@@@@@@@@@@@#####++#+++';#++++''+'+'++'++++++#####+++#@@@@@@@@@@@##@@@
#@@#@@@@@@@@@@@@@@@@####+++++'#++++++++++++++++++#@##@+++#@@@@@@@@@@@@@@@@@
#@@@@@@@@@@@@@@@#+##@@###+#+++##+##++++++######+.@#@+#+++#@@@@@@@@@@@@@@@@@
@@@#@@@@@@@@@@@#####@@@@@@@####@##+######@##@+;.@###++'+##@@@@@@@@@@@@@@@@@
@#@@@@@@@@@@@@#####@#@@@#+'@@@@@#@@+++'#;;;:@:.#@##++++++#@####@@@@@@@@@@@@
@@@@#############@######:..`#::,:@@;::,@:,,.@+@#+++++'+++##########@@@@@@@@
@@@###########@@@@##+#####@##+;:+#@,,.`@.,'######+''+'++######++####@@@@@@@
@########@@##@@@@@####+########+'+##########+#''++++++++#######++####@#@@@@
#####@@@@@@@@@@@@@###+##+###++++'#@#@+#+#++++''+++'#+++###++++++++####@@@@@
###@@@@@@@@@#@@@@@#######+#+++''+##+++#+++++++'+++'+#+####++++++++++#####@@
####@@@@@@@@@@@@@@@#####++++++''+##++++++++++++++++###@###++''''''#@###++##
######@@@@@@@#@@@@@@####++++++++##+++++++'+#++++++###@###+++'';'#@#########
###+++#@@@@@@@#@@@@@@######+++++##++##++#+###+#######@###++'''##@@#########
##++++#+@@@@@@@@@@@@@@@@####++#+###+++++###########'#@##+++'#@@@@##########
#+++'++++@@@@@@@@@@@@@@@@#########################+++@#++++@#@@#########+##
#++#+#+++@@@@@@@@@#@@@@@@@@@@@@#######@@@;+#@##++++++@@'+##@@@#########+#+#
+++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@##++++++++@@+#@@#@@@#####++###+#
+++++++#@@@@@@@@@@@@@@@@##@@@@'@@@@@@@@#@#+#+++++++++#@@@@@@@@@####++++++++
##+#++@@@@@@@@@@@@@@@@@@#+@@@@@@@@@@@@@@@@+#++++++++##@@@@@@@@@#####+++++++
###++@@@@@@@@@@@@#####@@#@@@@@@@@@@@@@@@@@+++++++'+'+@@@@@@@@@@######++++++
##++@@@@@@@@@@@@@@@@@@#@@#+++#@@@@@@@@@###+++++'''+++#@@@@@@@@@######++++++
+#+#@@@@@@@@@@@#@@@@@@@@++#++#+@@@@@@@@#+++++'+''++'+@@@@@@@@@@##+##++++++'
@@@@@@@@#@@@@@@#+''';';;;''+#@@@@+''+;;''+#;';;+@@@++:;;;;;:;;;:::;
@@@@@@@@@@@@@@@#++'';';;;;'+#@@@@#''';;''+#;;;;@@@@++:;;:;;:;:;::::
@@@@@@@#@@@@@@##++'''+;:;''+#@@@@#;';:;;'+#;;;;@@@@++::::::::::::::
@@@@@@@#@@@@@@##++'''+;:;''+##@@@#;';:;;'+#';;'@@@@+'::::::::::::::
@@@@@@##@@@@@###++'''+;:;;'+##@@@#''::;;'+#';;'@+@@+;;:::::::::,:::
@@@@@@#@@@@@@###++'''+;:;;'+#@@@@#'+::;;'+#;;;@#''@+'':,:,,,,,,,,,,
@@@@@@##@@@@@###++'+'+':;''+#@@@@#'+::;;'+#;;;@':;#@':;,,,,,,,,,,,,
@@@@@#@@@@@@###@#+++''+;;''+#@@@@#'+;:;;'+#''+@'::+#';::,,,,,,,,,,,
@@@@@#@@#@@@###@#+++''#;;'+##@@@@@'+;:;;'+#';##':,:+#';:;,,,.,,...,
@@@@###@@@@###+@#+++'''''++##@@@@@+'':;;'+#'+@@';,,'+#';,:;:,..,:;:
@#@@##@#@@@####@#++'''+######@@@@@+'+:;'+##@@@@+:,,,'##;':,,,,,,,,,
@@@####@@@######+#++++#+++##@@@@@@+'+;'++#@@@@@#;:...;+#;;':::,:::'
@@@####@@@###+##+++@@@@@@@@@@@@@@@#'++####@@@@@@';:,..:'##;;;;;;;;:
#@@####@@###+#++++##@#@@@#''#@@@@@@#++####@@@@@@@';,,:::'+###+''+##
@@@@##@@@+##+##@@@##@@+@@@@#+##@@@@@@@@@@@@@@@@@@@';;:,,,;###@@@@+;
#@@@##@@+##+++######@@;#@@'+#+#++++++##@@@@@@@@@@@@#+;;;:;;#@@+:##;
'#+@#@@#+##+#++#''''##;;#@@+++''+''+++++#@######@#++++##@@'+;.``:'#
''++#@@+##++++#@''+#+'#:'@+''''+'''''++++#########++++++#+':.....'+
;;''+@#+##+++++#+#++'#@;'+''''''''''''+++#+##+++##++++++++#;;;;;;'+
;;';++###+++++'##++''@@@'''''''''''''''++####++++#++'++'+'''##+'+#@
;;;''+###+#+#####++++@@''''';''''''+'''+'+###########++#+@#+##@@@@@
;;;';++##++++'##++++++''';';''''';'''''++++#####++++++++++++#++'+@@
;;'+++++++'+#'##+++'''''''';;''''++'''+'+++####'''''''''#'';;;';;'+
++;;;;;;;;;'++#+++''''''''';;;;@@@@@@+;'+++####+''''''''+''''';;'''
;;;::::::;;;;##+++''''''''';;;'@@@@@@@+;'+#@@@+#;'''''''+';';'''''+
;::::::::::;;#++++'''';'';';''@@@@@@@@@';'#@@@#+;::;''';'';;''''#@@
::::::::::::;##+++''';;'';;''+@@'``.:@@+;'#@@@@+###+@##+;#+++####@@
::::::::::::'##+''''';;;;';'''+:`` :@;@#;'#,:#@#+::::,:::;''';;'''+
::::::::::::+#++'''''''';;;'''@:```,@:@@''+,+;@#+;:,:,,,,::''''''';
::::::::::::#+'''''''''';;';;'+@:``.,+@@''+@#;@#+;:,,,::,;,::''''';
::::::::::::+'''';''''';;;;;';;#@@#;'@@#''++@@@@@@;::,::,,,::,;;;;;
::::::::::..+''';;;';;;;;;';';;;''++##++++++#+;#@@@::;:;:::,,;,,::;
`:::::::::.;+''''';;'''';;;'';;;'''++##+++''''##@@@';:;;::'+#;###,+
.`.:::::::.#++''';;;'''';';;;;'''''++';;;;;;;;;;+#'''...,:,..:.,.,,
,::::::::,`###+'''';'';';;;;;;;;''++;:::::::;;;;';:;;;'....`,,`````
::::::::::`####+'''''''';;;;;;;;;'++;;::,,,:::;;;+,;;''#`.``,:.````
:::::::::::###@++'++'''';;;;;;;;;''+;;:,,.,,:;:;'':''''+#.`..:..```
:::::::::::###@@#+++'''';;;:;;;:;;'+;;:,,,,,,::;'+:;;'''+....,.`.``
:::::::::::;##+#@#++'''''';;;';;;;''';:,,,,,::;;'+;;;;;++#::,;##+++
::::::::::::#+'+@@#+''''''';''';;;'+;;;:::,::;;''+';;;''+:,,.....::
;::::::::::;++''+@@#+'''''''''''''++''';;;:;;;'''+'';''++,.......;:
::;;::::;;';#+'''+#@@#++''''''''+++##+++##+###+#+;++''++#::,:...,;:
';;;;;;;;;::#+''';+#@@@@#+++++#@@@@@@@@@@@@@@@@@@@@@@@@@'::;,.`..''
:;';;;;;::::#++'';;'##@@@@@@@@@@@@@@@@@@@@@@@@@@@' `.,;;:;::.,,.:+
;:''':::::::##+'';;;;+#@@@@+@@@@@@@@@@@@@@@@@'@@'.``..,,:@##@@#+':;
':''::::::::##+'';;;;;'##@@#+@@@@@@@@@@@@@@@@::,.. `..,,::::,,,``.`
;:;';:::::::'##+'';;';;''+#+`,,#+@@@@@@@@@@@@,'... ....::,,:::::,:;
;;:;:::::::::###+''';'''''##+'+#,`;@@@@@@@@+@:;;.` ..,.::,,,:::::::
;;:;::::::::::###+'';;;'''++'';;'#'# .@@@@'..,`., ...,:':,,:,,,:,:
:;:::::::::::::+#+++';;;;;''';;;::'+..##``#``.``'+#;.,:,+:;;;':''';
;;:::::::::::::::+#++'''''';;;:;:::::'''..',`,.:;#++,::';;;;;::,:;'
';;:::::++++++#::::+#++'+'''';;;;;::;;;;;;:;'+++#@##+:':;:,:,;;::,,
':;:::#+++'''+++:::::###+++'''';;;;:;;;;;;;;'''++###';,,:::::;::;::
;:';;++'';;''''+::::;'@:###+++'';;::;:;;;;:;''++####:;:;;;::,:,:;,,
:;+;####+;;;;;''#@@@@@'+###++#+'';:;;:;';;;;''++###@,:,:,;:,:::;:,:
;##++#######;;;'@@++++@@#++++''##;;;;;;'';;''+#####@@;'+'+;'';;;,+;
+++++++++#####;;@+''''++###++''''++'''''''''+#######+:::,::,:,:::::
++++'++++##@###+#+'''''++####++'''++'###########@@@+###@;...,,,.,,:
+++++'+'+###@#@@+';';''''+####+++++++##';'''+++#@@#########,,,:::,,
''++'++''+###@@@+'''';;''++#+++#++####@#+''''+###@#+++#######,:::::
''''''''++++#@#@+'';;'''''+######+;;;;;';+#+';;###++++#++#+++#;:::,
''''''''+++##@@@#'';';;;''+;;;;::::::;;;;;;;+@#@@++++++++''''++#;''
''';''''''+###@@+''';;;;;+::,,,,,,,,,:::;;;;''+##++++++++'';''++@::
'''''''';'####@@+';;;;;;'::::,,,,,,,,,,::::;;;'+#++++#+++#'''''+#+#
'''''';;''+###@@+';;;;;;'::::,,,,,,,,,,,,:::::;;+#+++++++++'';'++++
''''''''''++##@@''';;:;'::::,,,,,,,,,,,,,,,,,::;'++++++++++';;@+##+
';;'''''''++##@@''';;;;':::,,,,,,,,,,,,,,,,,,:;;;'++++++++';@#@#+++
;;;;;;;;;;;;;;;;;;'#@#';:,:,,..,,+#+;;,:;,.......,,.,+#+';;;;;:,,,,,,,,,,':,,,,,,,,,::::::::::::::::::::;;;
;;;;;;;;;;;;;;;;;;+@@+;:::,....,'#+;;:,;:..........:#@##++'';;':,,,,,,,,,:;,,,::;'';::::::::::::::::::::::;
;;;;;;;;;;;;;;;;;;+@#;:::,....,;@#';':;:........,.:#@@@###++'';':,,,,,,,,,::;'+'';'':,:::::::::::::::::::::
;;;;;;;;;;;;''''''##;;::,.....,+@#;##++';:,......,#@@#####+++'';':,,,,,,,,;+++';;;';:,:::::::::::::::::::::
;;;;;;;;;''';;;'#@@+;::,......:@#''@@+''+++;,....:@@####++++++';;;,,,,,,:+#+';;;'':,,,,::::::::::::::::::::
;;;;;;''';::::;+@@#';,:......,'@#;;'@#'''''++;,..'@###+#+++++''';',,,,,'#+';;;;';,,,,,,::::::::::::::::::::
;;:;'';;::,,,:;#@@+;::,......:###;;,;@+';;'''++;.+@###+++++++''''',,.:+#+';;;';:,,,,,,,,,,,::::::::::::::::
::;+';:,,,,,,:'@@#';,:,......;@#+;;,:;#+;;;;'''+'@@#++++++++'''''',.:##+';:;';,,,,,,,,,,,,,,,::::::::::::::
:;+;::,,,,...:#@@#';::.......+@#+'::;,:#+;''';'''@##++++++'+'''''',;@#+';:;':;:,,,,,,,,,,,,,,,:::::::::::::
'+;:,,,,.....;@@@#;:::......,+@#';:,;:.,+#+++''''@##+'+++''+'''+''+@#+';;;;,.;',,,,,,,,,,,,,,,:::::::::::;;
+;:,:,......,+@@@+;:::......:#@#';:,:,.`,+@@@@#++@#+++++''++''''''##+';;;;,.,:';,,,,,,,,,,,,,,,:::::;;::::;
;:,:,.......,+@@@+;::,......;@@+;;:,;,...,#@@@@@#@#+++''''''''''''+#';;;;,.,.,;';:,,,,,,,,,,,,,:::;::::::::
;:,,........:#@@@+;:::......;@#+;;:,;,....,#@@@@@@#+++''''''''''''++;;;;,....,,;';:,,,,,,,,,,,::::,,:::::::
:,:.........;@@@@+;:::......;@##;;:,;:.....,#@@@@@#++++'''''''''''+';;;,.,...,,,:;';:,,,,,,,,:::,,,,,::::::
,:.`........;@@@@#;;,;,.....'@@#;';,;:.....`:#@@@@@++'+''''''''';'';;;,......,,,,,;';;:,,,,,:,,,,,,,,,:::::
,,..........;@@@@#;;,:,.....;@@#;';,:;,.....`;@+@@@#+''+''''''';'';;;,......,:,,,,,,;;';;;::,,,,,,,,,,,,:::
,.`.........;@@@@#;;:,;.....;@@#;;;,,;,......`'#+#@#++'++''''';;+';',.......,:,,,::,,,;;';:,,,,,,,,,,,,,,::
,.`.........;@@@@@':;,:,`...:@@#':;:.;:.`......'+'#@#+'''+';';;'';':.,:::::,,,.,,;';:,,:;:,,,,,,,,,,,,,,,,:
,.`.........;@@@@@+:;:,;.`..,#@##:;:.,;:;''''';'#++#@+'''''';;'++++++####+#++':,,;''';:;:,,,,,,,,,,,,,,,,,,
,```````....,+@@@@#;:;,:;.`.,+@##:;;:'####++++++++##@#+'''''''+####+++'''''++++';:;';,:;,.,,,,,,,,,,,,,,,,,
,`````````...'###@@+:;:.::.`.'@@#;:####++''''''''+++++#+++++###+++++'''''''''''+++';::;:...,,,,,,,,,,,,,,,,
,```````````.;####@#',;:.::,.:#@####++++'''''''''''+++++++++++++++++'''''''''''''+++:;:,....,,,,,,,,,,,,,,,
:```````````.,+####@#:,;:.,;::#@###+++++'''''''''''+++++++++++++++'''''';;;''''''''++':.......,,,,,,,,,,,,,
,.```````````.;####@@+:,;:..:'@###+++++''''''''''''''++++++++++''''';;;;;;;;;''';''''+',.......,,,,,,,,,,,,
,,````````````,'####@@+:,;;.,###+++++'''';;;;;;;;;;;;;'''''+''';;;;;;;;;;;;;;;;'''''''++:..,....,,,,,,,,,,,
,,````````````.:+####@@+:,:'####++++'''';;;;;;;;;;;;;;;;;;;'';;;;;;;;;;;;;::;;;;;'''''''+;......,,.,,,,,,,,
.,.````````````.;+####@@#;;@##+++++'';;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;'''+;......,,,,,,,,,,
,.,.````````````,;+##@#@@#@##+++''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::::::;;;;;;;;''''+:.......,,,,,,,,
:.,,`````````````.;+#@###@@##++''''';;;;;;;;;;;;;;;;;;;;;;;;';;;;;::;;;;:::::::;;;;:;;;;'+++,........,.,,,,
:,.,,`````````````.;##+##@@#++''''';;;;;;;;;;;:::;;;;;;;;;;';;;;;;:::::;:::::;;;;;:::;;;'+++'........,,,,,,
,:,`,,.````````````,';,+@@##++';''''';';;;;;::::::;;;;;;;;;;;;;;:::::::::::::;;;;;;::;;;''''+;.......,..,,,
:,:.`,,.```````````:;::#@@##+''''''';;;;;;''''';;:::;;;;;;;;;;;;;'+++#+##++''';;;;;;:;;;;''''+:......,...,,
+,,:,`.,,..````````:;:+@@##++''''''''+###@@@@@@@@##+:;;;;;;;;;'#@####+#++++#####';;;;;;;;''''++...........,
#+,,:,.`.,,,,.....,';'@@##++'''''++@@@@@@@@@@@@@#+'#';;;::;;;'#@@++'''''';'++'+##@+';:;;;;';''+;...........
+#+:.::,.``...,,,.:+:@@@##++'''+#@@@@@@@@@@@@@@@#+'#;;;;;:;;'@@@@@#++#@###@@#++++#@@;::;;;;;;''+:..........
'+#+:.,::,..``````,'+@@###+'''+@@@@@@@@@@@@@@@@@@##+:::;;:;;'#@@@@@@@@@@@@@@@@@@##@#;;:;;;;;;''++,.........
''+##',.,:::,,,,,,;#@@##+++''+#@@@@@@@@@#@@@@@@@@#@':;;;:::;;'#@@@@@##+'''''''++#@@+;;;;:;;;;;''+'.........
'''+##+;,..,,,,:::'@@###++'''#@@@###+++''''++##@@@+;;;;;:::;;;'###+';;;;;;;::::::;;:;;;;::;;;;'''#:........
''++++##+':,......+@@##++''''++++'';;';;;;;;;;'''';;;;;;:::;;;;;';;;;;;;::::::::::;;;;;;::;;;;;''++,.......
++++++++###++;;::;@@###++''''''''';;;';;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::::::::::;:::;;:::::;;;;;''+;.......
++++++++++#######@@@##++';'';'';;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::::::;;:;;::::::;;;;''++:......
++++++++++++++++#@@###++;;'';'';'';;;;;;;''++'';;;;;;;;;;;;;;;;;;;;;'+####+';::::;;;;:::;;::;;;;;''+'......
++++++++++++++++@@###++';''''''''';;;;;+#@@@@@@#+;;;;;;;;;;;;;;;;;'#@@@@@@@@@#';;::;::::;;;::;;;;'''+;.....
'++++++++++++++#@@##+++'''''';;''';;'+@@@@@@@@@+@#';:;;;;;;;;;;;;#@@#+@@@@@@@@@#';::::::;;;;:;;;;;'''+,....
'++++++++++++##@@@##++';''''';;;;;;+#@@@@@@@@@@@@@@'::;;;;;;;:;;#@@@@@@@@@@@@@@@@#;:::::;;;;::;;;;'''+;....
'++'++++##@@@@@@###+++''''''';;;;;+@@@@@@@@@@@@@@@@@'::;;;;;::;+@@@@@@@@@@@@@@@@@@#'::::;;;;;:;;;;;''++....
+++##@@@@@@@#+#@##+++'''''';;;;;'#@@@@@@@@@@@@@@@@@##;::;;;:::+@@@#@@@@@@@@@@@@@@@@#':::::;;;::;;;;'''+:...
@@@@@@@@@@@#'+@@@#++'';''';;;;;;+@@@@@@@@@@@@@@@@@@@@#;:;;;::;@@@@@@@@@@@@@@@@@@@@@@#;::::;;;::;;;;;''++...
@@@@@@@@@@+''#@@@#++'';''';;;:;+@@@@@@@@@@@@@@@@@@@@@@':;;:::+@@@@@@@@@@@@@@@@@@@@@@@#:::::::::;;;;;''++:,,
@@@@@@@@@@+''@@@@#+''';'';;;;:'#@@@@@@@@@@@@@##@@@@##++::;:::#@@@@@@####++####@@@@@@@@'::::::::;;;;;'''+'::
@@@@@@@@@@+'+@@@@@+''''';;;;::+@@@@#+''+#+##++##@@@';'+;:;::;#@@@#+;:,......,:'#@@@@@@#::::::::;;;;;'''+',,
@@@@@@@@@@#'#@@@@#+'''';;;;::;@@@@#;;;:..,:;;'##@@@+;;+;;;::'@@@##++;.`````````,'@@@@@@':::::::;:;;;;'''+,.
@@@@@@@@@@@+#@@@@#+'''';;;;::+@@@@+;#@#:`````,'#@@@+;;+;;;::'@@##@@@+:.``````````;@@@@@+:::::::;;;;;;'''+:.
@@@@@@@#####@@@@@#+''''';;;:;#@@@@#+#@+;,``````,'@@#;:';;;::'@@#@@@@';..`````````+@@@@@#;::::::;;:;;;'''+';
@@@@@####+##@@@@@#+''''';;;;;#@@@@@+@@+:,```````,@@+::';;;::;#@@@@@@',,..```````;@@@@@@@;;:::;;;;:;;;'''++:
@@@@#@@@@@#@@@@@@#++'''';;;;'@@@@@@##@',,..````.#@@+::';;;:::#@@@@@#::,....```.'@@@@@@@@';::;;;;;:;;;;;'++,
@@@#+++++++#@@@@@#++'''';'';+@@@@@@@+':,,...``,#@@@;:;''''';;'@@@@@#;:,...`..;#@@@@@@@@@';;;;;;;;:;;;;;''+,
@@#+'''''''#@@@@@#++''''''';+@@@@@@@#';:.....'#@@@'::'#+'';;;;#@@@@@+::,,:;'#@@@@@@@@@@#;;;;;;;;;:;'';;''+'
@@#''''''''@@@@@@#+'''''''';'@@@@@@@@#;:,,:;#@@@@#,:;#@+''';'';#@@@@@####@@@@@@@@@@@@@@+;;;;;;;;;;;''';''+#
@@#+'''''''@@@@@@#+''''''''''#@@@@@@@@#+++@@@@@@@;,:+@#+';;;'';'@@@@@@@@@@@@@@@@@@@@@@@';;;;;;;;;;;''';''+#
@@#+'''''''@@@@@@#+'+''''''';+@@@@@@@@@@@@@@@@@@@:,+@@+'';;;;+';+@@@@@@@@@@@@@@@@@@@@@+;;;;;;;;;;;;;'''''+#
@@+'''''''+@@@@@@#+'''''''''''#@@@@@@@@@@@@@@@@##:'@@#''';;;;''';'#@@@@@@@@@@@@@@@@@#';;;;;;;;;;:;;;'''''+#
@@+''''';''@@@@@@#+'''''+''''''+#@@@@@@@@@@@@@@@#+@@#+'''';;;;''';;+@@@@@@##@@@@@##';;;;;;;;;;;;:;;;'''''+#
@#'''''''''@@@@@##+'''''+'''''';;'##@@@@@@@@@@#+'@@#+'''';;;;;;''';;;++##+;;+##+';;;;;;;;;;;;;;;:;;;;''''++
@#'''''''''@@@@@##+''''''''''''';;;''+''''+'+'''#@#++'''';;;;;;;'''';;;;;;:::;;;;;;;;;;;;;;;;;:;:;;;;''''+;
@#''';;''''@@@@@##+''''';'''''''';''';;:::;;;'+###++'''';;;;;;;;;''''';;;:::::;;;;;;;;;;;;;;;::;:;;;''''+++
@#''';;''''#@@@@##+'''''''''''';;;'''';::;;;;+#++++'''';;;;;;;;;;;;'''';;::::;;;;;;;;;';;;;;::;;:;;;''''++@
@#+++++####@@@@@###+''';'''''+'';;'''';;;;;'+++++'''';;;;;;;;;;;;;;;;''';::::;;;;;;;;;;;;;;;:;;;;;;;'''++#@
@@#@@@@@#@##@@@@###++'''''''''''';;';;;;;;'#++''''''';;;;;;;;;;;;;;;;;;'''::::;::;;;;::;;;;;;;;;;;;;'''++#@
#++++###++''@@@@@##+++''''''';;;;;;;;;;;;+#+''''''';;;;;;;;;;;;;;;;;;;;;;';:::;;:;;;;;:;;;;;;;;;;;;;'''++#@
#';'''';;;;'@@@@@###+'''''''';;';;;;;;;;+#+'''''';;;;;;;;;;;;;;;;;;;;;;;;;';::;;::;;;;::;;;;;;;;;;;;''++#@@
+';:;::,:::'#@@@@###++''+''';;;;;;;;;;;'#+''''''''';;;;;;;;;;;;;;;;;;;;;;;;';:;;;;;;;:::;;;;;;;;;;;;''++#@@
;;:,,,,,,,:'+@@@@###+++''''';;;;;'';;'+#++'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;''++#@@
::::,:,,,,:''#@@@@##+++''''';';;'''''+##+++''''''';;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''+##@@
;:;:,:,,,,:+'+@@@####+''''';'';''''++#@@##+++++'''''''''';;;;;;;;;;;;;;;;''';::;;;;;;;;;::;;;;;;;;;''++###@
+;:,,:,,,,;'';@@@####+''''';'''''''+#@@@@@@###############++++++++++++++++##';;;;;;;;;;;::;;;;;;;;'''++####
##':::,,,,:'':#@##@##+''';;;;'''''++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@';;;;;;;:;;::::;;;;;''''+#####
######':,,:'':;@##@##++'';;;;';;'++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@#';;;;;;;;;:::;;;;;;'''++#++##
#########';''::@##@@##+''';;;'''++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@+;;;;;;;;:::;;;;;;''''+#+'++#
+++###++####+;;###@@##+''';;;''++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####@@#;;;;;::::::;;;;;;''''+#+'++#
++++#+++++#####@##@@##+''';;;'''+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####+#@#;;;;::::::;;;;;;;''+++#+''+#
+++++++++++#######@@##+''''''''+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####+,.,@#;;;;:::::;;;::;;;'+++++'''+#
++++++++++++######@@@#+''''+'''+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####@'...##;;;::::::;;;:;;;;'+++#+'+'++
++++++'+++++++##++#@@#+''''+''+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####+++:,,##;;:::::::;;;;;;;''+++#+'+'+#
+++++'''+++++++++++@@#++''+++'+#@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@########'+;::#+;;;;;;:;;;;;;;;;''++###+'+'#
'++++'++++++''++++++@@#++++++++#@@@@@@@#;:'#@@@@@@@@@@@@@@@@@###########'',..'#;;;;;;;;;;;;;;;''+++#+##'+'+
'++++++++++++''++++++@@+++'+++++#@@@@@@',,,'##@####@@#@##################'...'#;;;;;;;;;;;;;;;'+###+'+@+++'
+++++++++++++'''+++++#@#++''''+++#@@@@@+:::+############################++:::'+;;;;;;;;;::;;;'++###+'+@#'+'
+++++++'''''''''''++++#@#++'''''''+#@@#+'::'############################',,:;'#;;;;;;;;;;;;;''+####+''#@+''
+++++''''''''''''++++++@@+++++'''''+@@#'',..+###########################,`..;'#;;;;;;;;''''''+###'#+''+@+'+
++++''''''''''''''+++++#@@##+++++++#@@#'+:.`,+#######################+#+,..:;'#;;';'''''''++##@#''#+''+@#'+
++++''''''''''+''''+++++#@@@##++++#@@@#++',,::,;+##################+:..;';:;;'#''''''''++##@@@#'''##'''#@+'
++'''''''''+'''''+''++++#@@@@@####@@@@@#'+'';..`.'################+,....;;;;;'+'+'+++###@@@@@';'''##''''@#'
++'''''''''+'''''++''+++##@@@@@@@@@@@@@@+';'#',..'':;+########':,;#',,,:;;;;''+++###@@@@@@@#;...,;+#++++#@+
+''''''''''+''''''+'''+++#++#@@@@@@@@@@@@+'''+'::;,.``,+###+#:.`..:+;;;;;;;'+#@@@@@@@@@@@@#',...``.'###@@@#
'''''''''''''''+''''''''+#';+@#@@@@@@@@@@@#+';';'+;,..,;;;;;'',.,,:;;;;;;;''#@@@@@@@@@@###',:,....``;#+###@
''''''''''''''''+'''''''++#@@@+:+##@@@@@@@@#++';;'+'::;;;;;;;+;:;;;;;;;;''''@@@@@@@#++#++;.........`.''';+@
'''''''''''''+''+''''''''+##@@@+:;'+####@@@@#++'';;;;;;;;;;;;;;:;;;;;;;''''+#+';;'+''++':..........`,';;;'@
';'''''''''''''''''''''''++##@@@#;;;;;;''+@@@@#++'';;;;;;;;;;:::;;;;;;'''''#:...,;++'';,............'';;;;+
;;''''''''''+''''''''''''++#'#@@@@+;;;;;;;#@@@@##++'';;;;;;;;;;;;;;'''''''#@+,,,;''';,.............,+++';;'
'''''''+'''''''''''''++''++#++@@@@@#+++'';'@@@@@@###+'''';;;;;;;''''''''++#'+'''';:,.........`..```:++++'''
''''''+++';;''''''''''+''+++++@@@@@@@@@####@@@@@@@@@###+++'''''''+++++#+';;;;;:,..``..`.`...``....`;+''++''
'+'''''+''''';;'''''''++'++++'#@@@@@@@@@@@@@@@@@@@@@@@@@@@########@#+;:,,.....```````````````....``'+''++''
''''''''''';;'';;'''''''''++#''#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+';,.```````````````````````````````;'''''''
+'''''''''';';''';''''''''++#';'#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'::,.```````````````````````````.,,..;;;'''''
+'''''''''';''';''''''''''++#'::'+@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:::.``.````````````````````````.,::,;;;;''''
+'''''';;;;;'''''''''''+++++++:::;+@@@@@@@@@@@@@@@@@@@@@@@@#+;:::,.`.,.`````````,.`````````````..,,;:;;;;+#
+'''''';;;;''''''''''''+++++++::::;'+#@@@@@@@@@@@@@@@@@@@#+;::::,.```..`````````..````````````````.;;;;;'+#
+'''''';;;;''''''++'++'+'+++++;:::::;;+#@@@@@@@@@@@@@@@+':::::;:.`````````````````````````````````.;;;;;''+
''''''';;;;'''''''+'+++++++++#;:::::::;;'##@@@@@@@##';;:::,,,:::,``````````.,.````````````````````.;;;:;;;'
'';'''';;;;''''''''''+'''++++#;:::::::::;;;+++#++;;::,,,,,....,:,```````````..````````````````````.;;;;;;;+
'';'''';;;''''''''''+''''++++#;:::::::::::::,::::,,,,,,...`````..`````````````````````````````````.:;:;:;;#
+'''''''''''''#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++''''''''
+'''''''''''''#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++''''''''
+'''''''''''''#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++''''''''
+''''''''''';'#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++''''''''
+''''''''''';;#@@@@@@@@'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#';+++''''''''
+''''''''''';'#@@@@@@@@'#@@@@@@@@@@@@@@@@@@@@@@@@@@#';'++++''''''''
+'''''''''';;'#@@@@@@@@''@@@@@@#@@@##@@@@@@@@@@@@@+'''+++++''''''''
+';''''''';;''#@@@@@@@#''#@@@@@'#@@#+@@@@+@@@@@@@''++''#+++''''''''
+''''''''';;''#@@@@@@@#''+@@@@@@'@@+'@@@'#@@@@@@#'++'##++++''''''''
:;''''''''';;'#@@@@@@@@'''@@@@@@#'@+'@@'#@@@@@@@''++#++#+++''''''''
;;'''''''''';'#@@@@@@@#'''@@@@@@@'#+'@'#@@@@@@@+'''##+##+++''''''''
:''''''''''';;+@@@@@@@#'''@@@@@@@''''''@@@@@@@@'''##+#+#+++''''''''
,'''''''''''''+##@@@@@#'''@@+++++#'+';@@@@@@@@@'+++#+###++++''''';'
:'''''''''''''+#+@@@@@'''+@'''+'+++++++'''+@@@#'+++##+##+++'''''','
;,;'''''''''''#++#@@@@''+@++'''''++++''''+''+@+''+######++++:,;':,'
',,'''''''''''@#+++@@@'#`#'''''''+'''''''++++@@'''######++++;..,,,'
,:''''''''''''@@@###@@#``+'''';''''''';;';'++'@+'''#+##+'+++'.';','
''''''''''''''@@@@@@@@@.'''######+'''''';;'+++@ +'''++'''+++','''::
+'''''''''''''@@@@@@@@+'+'+++'+###''#######'++``,'''''';;+++'.;''',
''''''''''''''@@@@@@@@+++@@@@+#+;'''##+''###+++,@@''''''++++:,''','
+'''''''''''''@@@@@@@+''@@@@@@@@@@+'''''''''''+++@@@@@@@'+++.:,;':'
+'''''''''''''@@@@@@@++;@@@@@@@@@@@''''''''''''++@@@@@@@;+++:,,.';'
+'''''''''''''@@@@@@@@#'@@@@@@@@@#@+''++''';'''++;@@@@@@;+++''':,''
+'''''''''''''@@@@@@@@@@@#####@@@';'+@###@'''+++++@@@@@@;+++'''',''
+'''''''''''''@@@@@@@@@@'###++#+#';;@##+#+#'++++++@@@@@@;+++'''';''
+'''''''''''''@@@@@@@++@@@.``. :@+'+##+++###''''+#@@@@@#'+++'''''''
+'''''''''''''@@@@@@#'+'+,`` .`.':+#'::'###''''+#@@@@@+'+++'''''''
+'''''''''''''@@@@@@#+''',.`;.`.,#@@.`: .`,@''''+#@@@@@+;+++'''''''
+'''''''''''''@@@@@@#++'':,.```,;;'@..::;.,''+''+#@@@@@+;+++'''''''
+'''''''''''''@#@@@@+'';:';,...;:;;+,....,:;'+'+#@@@@@@+;+++'''''''
+'''''''''''''@###+''';';;;''''@@@#';:,,,:;''''+#@@@@@@''+++;''''''
+'''''''''';''@@@##+'';;;'+;;;@@@@@@:::++'';'+''#@@@@@@';+++'''''''
+'''''''''';';###@#';;;;;;:;:@#::++@@::,'''''''''+###@@';+++'''''''
+''''''''+';''+#+##;;;;;';'';@#@#@@@@:;::;''''';''';''@';+++'''''''
+'''''''''';''###+#;;;''+;';;;;;'#+@@;;;+;'''''''''+@@@';+++'''''''
''''';'''';'''#####;;;''+;;;:::;:::::::;:;+'';''''++#@@;;+++'''''''
+'''';;;'';;''#####''''+''':;::::::::::;''@;'';;;;;;''++'+++'''''''
''';''';''';;;@@@@@'''++++'';;:::::::::';+@'''''''';'+'''+++'''''''
''';;'''''';;;@@@@@@###@@@@@+;:::::;;'''++@'''';''';''+'++++'''''''
'';';;;''+';';@@@@@@@@@@@@@@@@@#+'';@@#@@@@+++'''''''++##+++'''''''
';'';';';';'';@@@@@@@@@@@@@+@@@@@@::@;'@@@@@##+++##@@@@;;+++'''''''
'''';';;;'';;;@@@@@@@@''+++'@@@@@@;@'+'@@@@@@@@@@@@@@@@+#+++'''''''
+';''';;;''';;@@@@@@@@;'###;#@@@@@@@#@@@@@@@@@@@@@@@@@@@@+++'''''''
+''''''''''';'@@@@@@@@+####,@@@@@@@@@@@@@@@@+@@@@@@@@@@@@#++'''''''
'''''''''';'';@@@@@@@#+@####@@@@@@@#@@@@@@@+'@@@@@@@@@@@@#++'''''''
''''''''''''''@@@@@@@+'@#####@@@@@@@@@@@@@@+'@@@@@@@@@@@@#++'''''''
''''''''''''''@@@@@@@+'##@###@@@@@@@@@@@@@@++@@@@@@@@@+..,++'''''''
+'''''''''''''@@@@@@@+'#@@###@@@@@@@@@@@,@@'#@@@@@@@@@'..,+++''''''
''';''''''''''@@@@@@@+'+#@@##@@@@@@@@@@:.@+'@@@@@@@@@@'...+++''''''
'''.,''''''';'@@@@@@@#''@#@#@@@@@@@@@@@:.@;'@@@@@@@@@@'...+++''''''
''',,;;;''::;'@@@@@@@@''@+:#@@@@@@@@#@#@,';#@@@@@@@@@@'...+++'';,''
'',;;,,.'';:;;@@@@@@@:''@:,##@@@@@@@@';#@;'#@@@@@@@@@@'...+++'':,:,
,.,;'':;';:;::@@@@@+'+';@'+'@@@@@@@@@,,@''+@@@@@@@@@@@'...+++'',',:
..;;'',';;:;:;@@@@@''+''+#,,@@#@@'@@#.`@''#@@@@@@@@@@@;...+++;,,'',
,.;;';:';';;;,@@@@@'''+''+..@#.@:`@+@`,';+@@@@@+'+@@@@,..`+++.:''',
,;:;;',';'';;,+@@@';;'#+++'''';#:.@@#;''++@@@@'@###@@@....+++',,'',
::;,.,.';''';:@@@@;;;;;++++'''''';'';'+++#@@@@'+@@@@@@...`+++'+,':,
,:.;'::';';;;;@@@@:;:::@++++''''''++'+++#@@@@+####+#@@+@@@+++'',:,:
,:;;;;'';';;;+@@@@:;;:;;@#++++++''++++##@@@@@'+#++#''+@@@#+++'':,;;
,;;'';:,';;':'@@@@;;::,:@@@@@@@@@@@##@@@@@@@##+@@@@+'''+@##++'';','
::;'';':;;:;;;@@@@:;::::+@@@@@@@@@#'''''@@@@@@@@@@@+''''###++'''';'
';;'',;::;,';'@@@@:;;:;;;@@@@@@@@@';;';;'@@##@@@@@'++'''++#++'''';:
';'''':.:':'';@@@@;;;;;;:#@@@@@@@';''';;;'@@@@+:#@+'''''+++++;''',;
''''''';'';;';@@@@;;:::;;;@@@@@@''''''';;'+@@'+'@@#'';+'+++++.,:,.;
''''''';'';:;;@@@@;;;;;;;;;@@@@'++'''''';''@@@@@@@#''''++++++,':',:
'''''''::':'';@@@@;;:;;;;;;#@#'''+#+''''''+@@@@@@@+'''+#@:+++,',','
+'''''';':;''+@@@@;;;:;;;;#@#'+#@@@#+'''+'@@@@'+@@@@@@@@@:'++:',,,.
|