;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::::::;::::::;::::;:::::::::::::::::::::::::;;;;;:;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::;:::::::::;::::::::::::::::::::::::::::::::::;::;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''''''';;;;;;;;::::;;;;::::::::::::::::::::::::::::;::::::::::::::;;;;;:;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;;''+##+++#+##+##+++''';;:;;::;:;:::::::::::::::::::::::::::::::::::::::::::;:;:;::;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';''''++++#######@##########+++':;;;'::;::;;:::::::::::::::::::;::::::::::::;::::::;:;:;::;;;:;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''+++##@@@@@@@@@@@#####@@@@#@###+++++''+';:;::::::::::::::::::::::::::::::::::::::::::;:;;:;::;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++###@#@@#@@@@@@@@@@@@####@@#@@##++++#+++';;:;:;::::::::::::::::;::::::::::::::::::::::;:;:;;::;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+###@@@@#@@@@@@@@@@@@@@@@@@@#@@@@@@##+#####';;;;;::;:::::::::::::;::::::::::::::::::::::::::;:::;:;:;:;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@######+'';;;;;;;:::::::::::::::::::::::::::::::::::::::::::;;::;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;';';''@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######@@#@@@##+++';'+';;;;:::::::::::::::::::::::::::::::::::::::;:;::;;;:;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+'''+++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@#@#####++++''';;:::::::::::::::::::::::::::::::::::::::;:::;:;;;:;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+#++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############@@#@#++#+';;;::::::::::::::::::::::::::::::::::::::::::::;::;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@#############@@@##+++'';;;::::::::::::::::::::::::::::::::::::::::::::;:;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###@@@############@@@@##++++;;;:;::::::::::::::::::::::::::::::::::::::::::;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;';'+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################@#####++''''';;;;::::::::::::::::::::::::::::::::::::::;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;''#@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@#@#@@########################++';;;;:::::::::::::::::::::::::::::::::::::::::;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@##@@########################+';;;::::::::::::::::::::::::::::::::::::::::::;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;'#@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@#@@@@@@#@@@@@@###################++;::::::::::::::::::::::::::::::::::::::::::;:;;
;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;';;;''@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######@@@@###@@@@@@@###@@@@############++';;::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;;''';+@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@########@@@#@##@@@@@@#@@@@@@#############+';::::::::::::::::::::::::::::::::::::::::::
;;;:;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;'+#@@@@@@@@@@@@@@@@@@#@@@@@@@#@@#@###########@@######@@@@@@@@@@########@###++'::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+#@@@@@#@@@@#@@#@@@@@@#@@#@@@@##########@######@@####@@@@@@@@@@##@@##########+';::::::::::::::::::::::::::::::::::::::::
;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+#@#@@@@@@#@@##@@##@###@####@####+###+++##############@@@@@@@@@@@#@@@########+'+;::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;''#@@@@@@#@@@@##########################++#@################@#@@@#@@#@@@@@@######+;::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;:;'###@@@@##@@@#####+#+####++#########++++++##@#######+#++++###+###@@@#@@@@####++###+';::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;'####@@@@@@@@##++++++++++++++##++#++++++#+#########+++++++'+++++####@@@@@@@@########+'::::::::::::::::::::::::::::::::::::::
;;;;:;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;'####@@@@@@@#+++''''''''''+'+++++++++++++++####+++++''''+++';''+++##@@@@@@@#########+++:::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;'+@###@@@@@@@+''';;;;;;'';;;''''+'++''++'++'+++'+'+++'''++'';::;;'''+#@@@@@@@###+######';;:::::::::::::::::::::::::::::::::::
;;:;;;;;;;;;;;;;;;;;;;;;;;;:;:;;;;'#@###@#@@@@#'';:::::;;:::;:::;;;'''';''''''';;;;;;';'';;:;'::::::;;'+@@@@@@#####+++#+##';:::::::::::::::::::::::::::::::::::
;;:;:;:;::;;;;;;::;;;;;;;;;;;;;;;'#####@@@@@@#';;:::,,::::::::::::::;;;;;;;;;::;;;::;;::;;:,:;::,,:::;;'+@@@@##@@#########';;::::::::::::::::::::::::::::::::::
;;;;;;:;:;;:;;;;;;;:;;;;;;;;;;;;;+####@#@@@@##;;::,,,,,,,,,,,,,,,,::::::::::,:,:::::::::::;::;:,,,:,,::;'###@@@@##########+;:::::::::::::::::::::::::::::::::::
;;:;;;:;;:;;;;;:;;;;;;;;:;;;:;;;'#######@@@@#';::,,,,,,,,,,,,,..,.,,,,:::,,,,,,,,::::,,,,,::,::,,,,,,,::;+#@@@@@@##@#######+;::::::::::::::::::::::::::::::::::
;::;;::::;;;:;;:;;;;;;;;;;;;;;;'+######@@@@@+;:::,,,,,,,,,,........,.,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,:;'+##@@@@##########++;:::::::::::::::::::::::::::::::::
;;:;:;::;:;;;;;;;;;;:;:;;;::;;;+#######@@@@#;::::,,,,,,,,.......```....,,....,.,.,,,,,,,,..,,,,,,,,,,,,,:;'#######@@#######++':::::::::::::::::::::::::::::::::
;;:;;::::;;;:;;;;;;:;;;;;;;;;:'+#+####@@@@#+;::::,,,,,,,.....``````..............,,,..,,,...,,,,,,,,,,,,::;'+#@@@#########+#++;:::::::::::,::,:::::::::::::::::
:;:;:;;::::;:;:;;;;::;;;;;::;;'#######@@@@#':::,,,,,,,,.,...`````````.......................,,,,,,,,,,,,,::'++######++#+#+##++':::::::::::,::::::::::::::::::::
;::;;::::::;::;:;;::;;;;;:::;;+#+###+#@@@#+;::,,,,,,,,........`.`.```...`...................,,,,,,,,,,,,,,:;'+#######++###+#+++;:::::::::::::::::::::::::::::::
:;::;:;;::;::;:::;::;;;;:;;::'####+++@@@##':::,,,,,,,,,,....`````...........................,,,,,,,,,,,,,,,:'+#######+++###+##+';::::::::::::::::::::::::::::::
:::;::::::;::;::;:;;:::::;;:;++++++###@##+;:::,,,,,,,,........``.............................,,.,,,,,,,,,,,::'+#########+#####+';:::::::,:,::::,::,:::::,::::::
::::::;::::;:::;:;;:;::::;;;+####++###@#+';:::,,,,,,,..,.......................................,.,,,.,,,,,,,:;'################+::::,::::::,:,:::,::::::,::::::
:::;:::::::;::::::;::::;:::'+####+#++##++;:::,,,,,,,,...,......................................,...,,,,,,,,,::'+###+@##########+;:::::,::::::,:,,,,:::::,::::::
::::::::::::::::::::::::::;;##+#++#+##++';:::,,,,,,,,...........................................,.,.,..,,,,,,:;'++##+#########+';,:::::::::,:::::::,:,::,:,:,::
::;;::;::::;::::::;::::;:::+#####+++#++';::::,,,,,,,,,,,,...........................................,,,,,,,,,,:;'++##+########+'::::::,:::::::::::,,::::::::,::
;:;;:;;::::;::::::::::::::;++###++++##+';:,:,,,,,,,,,,,,,.,,,.......................................,,,,,,,,,,:;'+#+#++######+'::::::::::::::::,,:,,::::::::,::
:;;;;::;;:::::::::::::::::'#+########+';::::,:,,,,,,,,,.,,,,........................................,,,,,,,,,,:;'+####++###+#+':::::::::::,::,,,:::,:::,,,:::::
:;;;:;:::::::;::::::::::;;'++#####+##+':::,,:,,,,,,,,,,.,,,,.........................................,..,,,,,,,;''#####+###+##':::::::::::,,::,,,,::,,:,:::::,:
::::::::::::::::::::::::::''######+##+';:::,,,,,,,,,,,,,,,,,.,........................................,.,,,,,,::;'####@#+##+#+':::::::::,:::::,,:,,:,,:,:::::::
:::::::::::::::::::::::::;;'+########+;;::,,,,,,,,,,,,,.,,,,,,,,......................................,...,,,,,:;'#######+###+'::::::::::,,:::,:,:::::::,,:::,:
::::::::::::::::::::::::::;'#+######+';:::,,,,,,,,,,,,,,,.....,,......................................,...,,,,,:;'+#+####+##++':::::::,:::::::,,,:,:,::,,::::::
:::::::::::::::;::::::::::;;+#@#####+';;::,,,,,,,,,,,,,,,,,.,.................................,......,,...,.,,::;'+######+##++;:::::::::::,:::,:,,,,,,,,,:::,,:
:::::::::::::::;::::::::::::+###@####'':::,,,,,,,,,,,,,,,.,,..................................,..........,,,,,::;'+#########++;:::::::::::::,:,:::,:,,,,,,::,,:
::::::::::::::::::::::::::::+########+;;::,,,,,,,,,,,,,,,,,,.........................................,....,,,,::;'##########+';::::::::::,::::,,:,,,,,,,,,::,,:
;:::::::::::::::::::::::::::+###@####+;;:,:,,,,,,,,,,,,...................................................,,,,::;'+#########+;:::::::::,::::,,,,:,,,,,,,,:::,,:
::::::::::::::::::::::::::::'####@@##+;;::,,,,,,,,,,,,,,.,,...............................................,,,,,:;'+#########+;::::::::::::,:::,,,,,,,,,:,:,::,,
;::::::::::::::::::::::::::;;##@@@@##+;:::,,,,,,,,,,,,,,..................,.....................,,,.,.,..,,,,,,:;'##########'::::::::::,,:::,:::::,,,,,:::,:,,,
;::::::;::::::::::::::::::::'+##@#@##';:::,,,,,,,,,,,,,,,...........,..,..,.............................,,,,,,,:;'+#@#######;;:::::::,:::,:,::::,,:,,,,:::,,:,:
;:::::::::::::::::::::::::::;++@#@@@#+;;:::,:,,,,,,,,,,,,,...........,..,,,..,,......................,,.,,,,,,,,;'+#@######+;::::::::::,:::,:,::,,:,,,,,,:,:,:,
::::::::::::::::::::::::::::;'+@#@@@#+;:::::,,,,,,,,,...,,,.......,.,,,,,,....,....................,,,..,,,,,,,::'+#@##@###+;::::::::,:,:::,:,,:,,,:,,:,,:,:,,:
:::::::;::;:::::::::::::::::;;'@#@@#@'::::::,:::,,,,,,......,..,......,,......,....................,,...,,,,,,,::'+#@@#####';::::,:::::::,:,::::,,,,,,,,,::,,::
;::::;:::;:::::::::::::::::::;;@#@@@@'::::::::::,,,,,,,,,,,,,..,....,.,,,....,,,,.,.........,,:,,,.,...,,,,,,,,::;+##@#####':::,:,:::::,:::::::::,,,,,:::,:,,:,
;::;:::::::::::::::::::::::::::@#@@@#+:::::::::,:,,,::::::::,,,,,,,,,.,,,....,,,,,,,::,,,:::;:::,,,,,.,,,,,,,,,::;+###@@###;:::::,:::,::,:::,,::,,,,,,::,:,,,,,
;;:;::;::::::::::::::::::::::::+@#@@#+;::::::::,,,::;;;;;;;;;;;;::,,,.,,,,..,,,,,,::;';;;;;;;;;:::,,.,,,,,,,,,,:::+##@####+::::::::::::::,::,:::::,,,::::,,,,,,
:;::::;::::;:::::::::::::::::::'+@@@#+::::::::,,,::;;;;'''++'';;;:,:,,,,,,...,,,::;:;''''''''';:;;,;:,,,,,,,,,::::+######+'::::,::::::::::::::::::,:,,:::,:,,,,
:;;:;:::;::::;:;:::::::::::::::''@#@#+;:::::::,::;;;;''+++++'''';;:::,::,..,,,::::;;'++++++++''';::::::,,,,,,,,:::+######+;::::::::::::,::::::::::,:,::::,,,,,,
:;;::::::::;:::;:::::::::::::::''##@##:::::::,:;;;;'''+'++++++''';;:::::,,.,,,,::;;'''+++++++'+'';;;;::::,,,::::::;######+;:::::::::::::::,::::,:,,,,:::,:,,,,,
::;::::::::;:::::::::::::::::::;;+#@#+;:::::::;;;;';'''''''+++''''';::::,,.,,,::;;''''+++'':::;';;;;::::::,,:,:,::;#####:,,,::::::::,::::::::::,,,:::::,::::,,,
::;::::::;:::;:;:::::::::::::::;:'@##+;::::::;;;'''';;:::::;;;';;''';;::,...,,,,:;'''';;;:::,:,;;;;;;;;;;:::::,,,,;+###:..,,,:::::::::,::::::::,,,::,,:,,::,,,,
::;;:::::;;::::::::::::::::::::::;'##+;:::;:;;''''';;;:::;:;;';;;;''';;:,...,,::;;;;;;'+';''';'';;;;;;;;;:,:,,,:,:;+#+'...,,,:::::::::,::::::::,::::,,::,,:,:,,
::;;:::::::::::::::::::::::::::,,,;###;::::;;';';';;;++'';:::;'+';;''';:,...,,::::;;;'';;;:':;,:++';;;:;:::,,,,,:::+#',...:;::::::::::,::::::::,,:,:,::,:,:,:,,
:::;::;::::::::::::::::::::::::,,.,+#+:;;::;';';;;'++';#'#'#:;:'+'''''':.....,::::;;';'''@#'@@##::++';;;::,::,,,,::+#,...;':,:::::::::::::::::,,:,,:,::::,,,::,
::;;:;:;::::::::::::::::::::::;:,,,'#+;::;:;;'''''+''##@@@@##'+'''''';;:,....,::;;;;;;++'##@@##;#+;''';::::,,,,,,,:'#,,,;''::::::::::::::::::::,:,,:,:::::,,::,
:;:;:;;::;;::::;::::::::::::::;+::,:#+;::;::;;'''''++''##+##;:'++';;';;:.....,:::,,:''';:'++#+#:;'+;::::::,,,,,,,,:+#,,,:+',,::::::::::::::::::::,:::::,,:,,:,:
:::;:::;:;::;:::::::::::::::::;'''::#+::::::;;;'''''+';'@'#',,::'';;;;:,...,..::,.,;;;;::,+'+#,:;:;;::::,,,,,,,,,,:'+,,,,''.:::::::::::::::::::::,::,::::,:,:,:
;::;;:;;:;;::::::::;:::::::::::;++;:#';::::::;;;'''';:;::::,,,,,,,:;;;::...,.,::,,,,,,,,,,,::,,,,::,,,,,,,,,,,,,,::'+:,.,;;.:::::::::::::::::::,,:,:,::,,:,,:,:
:;:;;:;::;;::::;:::::::::::::::;++':@';:::::::;;;:;;;;:::::::::::::;;:::,`...,::,,,,,,,,::,,,,:,,,,.,.,....,,,,,,:,';:..,:;.::::::::::::::::::,,:,:::::::::,:,:
:;::;;::;::::::::::::::::::::::,+'''+':::::,,:::::::::::::::::,,::::::::,....,::,,.,,,,:,:,,,,,,,,....,......,,,,::;;,...,:.:::::::::::,::::::,:::::,::::,:,,::
;::;;::::::;;:::;::::::::::::;:,';:'''::::,,,,,,,,,,,:::::::,,,.::::,:::,....,:,,,.,,,,,,,,,,,,,.............,,,,::;;:,..,:.::::::,::::::::,:::,:::::::,:::::,:
;:::;;::::::::::::::::::::::::::;:::';;:::,,,...,,,,,,,,,......,,,:,,::,.....,::,,,,,.......................,,,,,::;':...,:.,::::::::::::::,:,:,:,::,::::::,:,:
:;;:;;::;;::::::::;:::::;:::::::::,:;';::,,,...................,,:,,,::,.....,:,,,,,...,,..................,,,,:,::;':,...,,::::::::::::::,::::,:::::,:::::,:,:
::;:::;;;;;:;::;::;::::;::::::::,:,:''::::,,,..................,,,,,,::,....,,:,,,,,........................,,,,:::;';,...,:::::::::::::,::::::,,:::::::::,:::,
;:;::;;;:;:::::::::::;:;:;::::::,,,:'+::::,,,.................,,.,,,:::,....,,,:,,,,........................,,,,:::::':,...::::::::::::::::::::::::::,:::,:,:,:
;:;;::;;;:::::::::::;::;:::::::;:,,:++;:::,,,...................,,,,,:,,.....,,,,,,,.......................,,,,,::;;;':,..,::::::::::,::,::::,:::::::,::,:,,:::
::;;:;;;;:::::::;::::;:;:::::::;:,,:+';;::::,...................,,,,,::,.....,,:,,,,.....................,,,,,,:::;;::,,..,::::::::::::::::::::::::::,::::,,:,:
;::;;;;;;;;;:::;:::::;:;;::::::::,:;++;;::::,,.,...............,,,,,:::,.....,,::,,,,....................,,,,,,:,::;',,...,:::::::::::::::::::::,:::::::,:,,:,:
;::;;;;;;;;:;;;;::::;;:;:::::::::,::'+;::::::,,,,...............,,,:::,,.....,,:,,,,,...................,,,,,:::::;++.....:::::::::::::::::::::::::::::,,::,::,
;;:;;:;;;;;;::::::;::;;;;::::::::,,:;+;;::::::,,,,,,............,,,:,:,,..`..,,:,,:,,..................,,,,,,,,,::;+,,,..,::::::::::::::::::::::,::::::,,:,,,,:
;;;;:;;;::;;;:::::;::;:;;;:::::::,,,:';:::::::,,,,,,..........,.,,:,,:,,..`..,,:,,,,,.................,,,,,,,:,,,:;':....,:::::::::::::::::::,,::::::,::,::,:,:
;;:;:;;;;;:;:::;:::::;:;:::::::::,,,:;;;::;::::::,,,...........,,,,,,,,,,...,,:,,,,:,.............,.,,,,,,::,,,:,:;;,...,,::::::::::::::::::,:::::,:::,:,::,,,:
;;:;;;;;;;;:;::;:::;:;:;:::::::;::.,:;';::;;:::::,,,...........,,,,,,:::,,,,,::::,,,,................,,,,::,,,,:::;',..,.,:::::::::::::::::::::::::::,,,,:,,:::
::;;:;;;;;;:;;;;::;;:;;;::::::::::,.,:';;::;;::::,,,,.......,,,,,:,,::;:::,,:::::,,,,.............,.,,,,,,,,,,,,::;;.....,::::::::::::::,:::::::::::::,:,,,,:,:
;;;;:;;;;;;;:;;:::::;;:;:;::::::;:;:,,';::;:::::::,,,,,....,,,,,,::::;;;::::::;';:,,,............,,,,,,,,,,,,,,,:;;;,....:::::::::::::::::::::::::::::,,,::,:,,
::;;;;;;;;:;;;::::;::;:;;;::::::::,',,+;;::::::::::,,,,.,.,,,,,,,::;#@@#;;:;'+#@#+:,:............,,,,,,,,,,,,,,::::;,...,:::::::::::::::::::::,:::::,:,,:::,,,,
:;;;;;;;;;:;:;::::;:;;:;;;:::;::::,,,,;;;;::::::::,,,,,.,,,,,,,,,;:'###+';;;;;;;+':::,...........,,,,,,,,,,,,:,::::;,...,:::::::::::::::::::::,:,:::,::,:::,,,:
:;;:;;;;::;;:::;:::::;:;:;;::;:;::,.,,';;::::::::::,,,,,,,,,,,,,,:;;;;''';;;;:::,::;:.............,,.,,:,,,,,,::;::'....,:::::::::::::::::,:::::::::::::,::,,,,
;:;:;;;;::;;:;;:::;;;::;:;:::::;::,,.,+;;;:;:::::,:,:,,,,,,,,,,,,:';'''';;;::::;;;;:,..............,,,,,,,,,,:::::;;....::::::::::::::,:::,:::::,::,::,,,::,,,,
;;;:;;;;::;::;;;;:;;;;:;:;::;;:;:;:,.,;';;:::::::::,,,,,,,,,,,,,,,:+''+;;;;;:;;';::,.,....,......,,,,.,,,,,:,:::::::...,::::::::::::::,:::::::::::::::::,,:,,:,
;;::;;;;;:;:::;:::;;;;;;:;::;;:;;;:,..:';;:;::,,::,,,,,,,,,,,,,,,,,:;'';;:;';:;;;,.,...........,..,,,.,,,,,,,:::;:;,..,:::::::::::::::,::::::::::::,:::,:::,,:,
;:::;:;;::;::;:;;;:;;;;;:;;;:;:;:::,..:';;;:::::::,,,,,:,,,,,,,,,,,:;;;:::;';::;':,.,..,...........,..,,,,,:::::::::,,,::::::::::::::::::::::::::::::::::,,,,:,
:::;;:;;::;:;;;::;;;;::;;;;;:;:;:;;,,.,;;;;::,:::,,,,,,,,,,,,,,,.,:;;;;:::;';;;:;':,,,.,,,,....,...,,,,,,,:::::::::;:::::::::::::::::::::::::::::::::,:::::,,:,
:;;;::;;;:;:;;;::;:;::::;;;;:;;;::;;:,,'';;::::::,,,,,,:,,,,,,,,,::;;;::::;';:::;;;:::,,,,,..,....,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::,:::,:,
;;;::;;;;;;::;;::;:;;::;;;;;:;;;;::;;::';;;:::::,,,,,,::,,,:,,,:,:';;;:::;:;;:::';;::::,,,,,,,,....,..,,,,,:::::;;;::::::::::::::::::::::::::::::::,::,::::,,::
;::::;;;;;::;:;;:;:;;;;;;;:;::;;:;;:::;;;;;;:::::,:,,,,:,,,:::,;:;;;;::,,:,:;:,:;;;:::::,,:,,.,.,,,,,,,,,,,,::::;:;:::::::::::::::::::::::::::::::::::,::,:,::,
::;;;:;:;;;:;:;;;;:;;;;;;;::;:;;;;;;:;;';;';::::::::,,,::,:::;::;:;:::,,..,,,,,,,:::::::,:,::,,,,.,,,,,,,,,:::::::;:::::::::::::::::::::::::::::::::::::,,:,:::
;;;;;:;:;;;:;;;;;;;;;;;:;;;;;;;;::::::;';;';;:::::::::::::::::;;;::,,,,,.....,,,,,:;:;;:::::::,,,.,,,,,,,,::;::::;;:::::::::::::::::::::::::::,::::::::::::,,:,
;;;;;;;:;:;;;:;;;;;;;;;;;:;;;;;:;;;::;;;';;';::;::,:::::::;;:::;;::::;;;::,,:;;::,,,:::;::;;::,,,,,,,,,,,::;::;:::;::::::::::::::::::::::::::::::::::::::::,,:,
;;;;;;;;;:;;;;;;;;;;;;;;;:;;;;;:;;;;::;;;;;;;;;::::::::::;;;;;;::::;;';;;;;;:;;;;;:,,::::;:;::,,,,,,,,,,,:::::::::;::::::::::::::::::::::::::::::::::::::::::,,
;:;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::;;;;;;;;;:;:;:::::::;;;;;;;;;''+++##+'''++++'';::::::;::::,,,,,,,,,,:::::::::::::::::::::::::::::::::::::,::::::::::,:,::,
;:;;:;;;;:;;:::;;;;;;;;:;;;;;;:;;;;;;;;:';;;;;;;;::::::::;;;;;;;;++#+;;;;;::::::;'++'':::::::::,,,,,,,,,:,;:::;::;:::::::::::::::::::::::::::::::::::::::,::,:,
::::;;;::;:;::;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;;;:;;:::::;;;;;;;+#';,,.,,.,,,,,,,,,::;''';:::::,,,,,:::,,::::::;:;;::::::::::::::::::::::::::::,::::::::::,::,:,
;;;;;;:;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;';';;;:;:::::::;;;;;;':,,,,,,,,,,,.,.,,,,,,,,,,;;:::;,,,,,:::::::::::::;;:::::::::::::::::::::::::::::::::::::::,:,,:,
;;;;;;:;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;'';;;;;;;:;::::::;;;;:,,,,,,,,,,:,:,,,,,,,,,,,,,::;::,,,::,,:::::;:::;:;::::::::::::::::::::::::::::::::::::::::,:,::,
;:;;:;:;::;:;;:;;;;;;;;;;;;;;;:;;;;;;;:;;''';';;;;;;::::::;;:::::,,,,,::;''';:,,,,,,,,,,,,;:::,,,:::,:::::::;::;;::::::;:::::::::::::::::::::::::::::::::,,,::,
;;;;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;:;;;:;;;';;;;;;;;;;;:::;;::::::::::::;'+++'';::::,,,,,,,::;:,,:,::,::::::;::;;;:::::::::::::::::::::::::::::::::::::::::,:,:,
;;;;;;:;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;'';;;';;;;;;:::;::,,,::::;;;;;'''''';;;:::,,,,,,,:::,,:::::;:::::;;:;'::::::::::::::::::::::::::::::::::::::::::::,:,
;;;;:;;;;;;;;;:;;;;;;;;;;;;;:;;;:;;::;;;;;'''';';';;;;;:::::::,,:::;;;;''+;'''';;:::,,,,,,,,::,::::::::;:::;;;;;::::::::::::::::::::::::::::::::::::::::::,:::,
;;;;;;;;;;;;:;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;''';;;;';;;:;;;:::::::::;;''''''';';;;::::,,,:,,,,,,,::::::::;::;;;;:::::::::::::::::::::::::::::::::::::::::::::::,
;;;::;;;;;;;:;:;;;;:;;;;;;;;;;;;;;;;;;;;;;;;''''';;;;;:::::::;::::::;;';''';';;::::,,::,::,::,,:::::;:;;:;;';';:;:::::::::::::::::::::::::::::::::,:::::::,::::
;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;:;;;:::;;;;;;;''''';';;';:;;:;;;;::::::;';;:::::::::'::::::::::::::::::::;:;:;''::::::::::::::::::::::::::::::::::::::::::::,:::,
;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;'''';;'';;;;;;'';:::::;:::,,,,::::::::,::::::::::::;::::;;;;;;':::::::::::::::::::::::::::::::::::::::::::::::,:,
;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+''''';'';;;;;:;;;:,:,:,:,:,,,,,,,,:,,,,:::::::::::;;;;;;';;'';:::::::::::::::::::::::::::::::::::::::::::::::::,
;:;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+'''''';;;;;;:;;::,,,:,::,,,,,,,,:,:.,,:::::::::::;;;;;;;;;';::::::::::::::::::::::::::::::::::::::::::::::::,:,
:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+++'''';;;;;;:;;:,::::,,,,,,,::::::,,,,::::::::::;;;;';''+;:::::::::::::::::::::::::::::::::::::::::::::::::::,
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'++''''''';;;;::::;::;:,,::::::::::,::,:::::::::;';;';;'+;::::::::::::::::::::::::::::::::::::::::::::::::::,::
;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''++'''''';;;;::;;;;;;:::;;;::;;;:;:;:,::::;::;;;';''''+;::::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''++'''''';;;;;;;;;;;;:;;';;;;;:';;;::::;::;;;'''''++::::,:::::;::::::::::::::::::::::::::::::::::::::::::,::
;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;''''''+'+''';'';;;;;;;;::;'';';;;;;;;;:;::;:;';'''''++:;:::::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''+';++++'''''';:;':;;;;';;';';;;;;';:;;;''''''''+';:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::
;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;'''';'+++''''';;;';;;;;;;;;;;;;:;:';;';'+++'''+''':::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::
;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';::;;;;;;'''';;#+++'''+'';;;;;;;;;;;;';;';';''''+++'''+;;:::,::,,:,,,:::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#+;::::;;;;'''';;''+++''''''''''';;;'''''''';'''+++'''';';;:::::,,,,,,,;::::::::::::::::::::::::::::::::::::::::::::::
;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;##':::::;;;;;''';;;';+#+'''+''+''+;'''+'''''''++++''';;;;;:::::::,,,,,,,;@;::::::::::::::::::::::::::::::::::::::::::::
;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;'###;;::::::;;'''';;;;';'+++++'+''+++'++'''+'+++++'+';;;;;;:;:;:::,:,,,,,::@##;::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'####';;:::::::;;''''';'''''+++++++++++''''++++++''''';;;:;;:::::::,;.,,,,,,:+###';:;::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'#@###@:;:::,:::::;'';'';;';'+++++''+'''''''+'''''''+';'::;::::::::,,,:,,,,,,::,@###+;:::::::::::::::::::::::::::::::::::::::
;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;+@#####':;;:::,::,:;;';''''''+''''+''+'''';''';'''''''';;;::::::::::,,,,,,,,,,,:,,@#++##;:::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'########;:;:::::,:::::;;;''''''''''''''''';;;;';''''';;;;::::::::::,,,,,,,,,,,,,:,,'#++++++;:::::::::::::::::::::::::::::,:::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#########@::;;:::,,:::,::;;'''''''''';'';''';'';'';''';;;:::::::::,:,,,,,,,,,,,,,,:,,:#++++###'::::::::::::::::::::::::::::::::::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;'@#########@::;;:::::,,:::::;;';;''';;'';;;;;;;;;;';;';';;;::::::::::,,,,,,,.,.,,,,,:,,,#+#++++###;;:::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;'+@##########@:::;::::::,::::::;';'''';''';''';;;';;;;;;;':::;:::::::,,,,,,,,,,,,,,,,,:,,,#+++++####++;::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;'#############@:::;::::,::,:::::;;';''''';';''';;;;;;;;;;;:::::::::,,,,,,,,,.,.,,,.,,,,:,,,++#+++++#+++#+;::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;:;;;;;;'###############@:::;:::::,::::::::;;;''';';'';;;;;;;;;:;:::::;::::,:,,,,,,,,,,,,..,,,,,,:,,,++#+++++++++#+#+;::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;+#################;::;::::::,::::::::;;;;'''';;;;;;;;;';:;::::::::,,:,::,,,,,,,,,,..,.,,,,:,,,++#++++++++++#++#+;::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;+################@##'::;:::::::,,::::::::;;'''';;;;;;;;;;:::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,####+++++++++++##+++;::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;'######################::;:::::::,,:::::::::;;;;;;;;;;;:;::::::,,::::,,,,,,,,,,,,,,,.,..,,,,,,,,,,#+##+++++++++++#+##+++;::::::::::::::::::::
;;;;;;;;;;;;;;;;;#######################@;::::::::,,:,::::::::;;';;;;;;;::::::,,,:,,:::,,,,,,,,,,,,,.,,,...,,,,,,,,,#+##+++++++++++++++#++#+;::::::::::::::::::
;;;;;;;;;;;;;;;'@##########+#############+::::::::::::,:,::::::;;;;;;;;;:::::,:,,,,,:,,:,,,,,,,,,,,,,,,,,.,,,,,,,,,;#+#+++++++++++#++++++#++#+:::::::::::::::::
;;;;;:;;;;;;;'#############+#############@::::::::,::,,,:::::::;;;;:::;:::::,,,,,,,,,,,,,,,,,,,,,,.,.,,..,,,,,,,,,,#####++++++++++++++++++##++#':::::::::::::::
;;;;;;;;;;;;+#############################':::::::::,:,,::::::::::::::;::::::,,,,,,,,,,,,,,,,,,,..,,.,.,,,,,,,,,,,,#####++++++++++#++++++++###+++;:::::::::::::
;;;;;;;;;;'################################:::::::::,:,,,::::::;:::;::::::::,,,,,,,,,,,,,,,,,,,,...,,,...,.,,,,,,,;+###+####+++++++++++++++++###+#+;:::::::::::
;;;;;;;;;+###@#############################':::::::::,,,,,:::::;:::::::::::::,,,,,,,,,,,,,,,.,.,,,.,..,.,.,,,,,,,:####++####+++++++#+++#++++++++##+#';:::::::::
;;;;;;;'###################################@;::::::::,:,,,,,,,,:::::::::::,,,,,,,,,,,,,,,,,,..,.,...,.....,.,,,,,'###++#+++#+++++++#++++#++++++++###++';:::::::
;;;;;;+######################################::::::::,,,,::,,,,,:,::::::::,,,,,,,,,,,,,,,,,,,..,...,....,.,.,,,,:#####++++#++++++++++##+++++++++++++####'::::::
;;;;'########################################'::::::::,:,,,,:,,,:,,:::,,,,,,,,,,,,,,,,,,,,,,..............,,,,,,+######+++#+++++#+++##++++++++#+++++++####;::::
;;;'#########################################@':::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,.......,.,..,..,,,,'#######++++++++##+++++#++++++++++++++++++###;::
;'############################################@;::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.............,.....,,,;########+#++++#+##++++###++++++++++++++++++###+;
'############################################@##;:::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................,,:#######+#+#++++##+#+++++##++++##+++++#++++++#####
#############################################@##+;::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,...............,:#######+#++#++++++++++++###+++++##++++#+#+#+#++###
@################################################+;::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,...............,,:@#######+#+#++++++++++++++##+#++##++++++##+#####+##
##################################################+;:::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,...,.........,,;@#########++#+#++++++++++++#####+###+###+++#########
####################################################;:::::,:,,,,,,,,,,,,,,,,,,,,,,,,,..,,...,..........,,'##########+##+++###++#++#++######+#++##+#++##########
#####################################################';:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...........,:+##########+##+++++#++#+++++++#####+##+###+############
#####################################################@+;:::,,,,,,,,,,,,,,,,,,,,,,,,,,,....,.........,,:############+##+++####+++++++++####+######++############
########################################################';::,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.......,,:+###############+++++##+++####+++++########+##############
##########################################################';:,,,,,,,,,,,,,,,,,,,,,,,,,,.,......,,,:+#################++++++#++++##++++++#####+#################
###########################################################+';::,,,,,,,,,,,,,,,,,,,,,,,,,.....,::'#################+###++++##+++++++++++########+##############
##############################################################';:::,,,,,,,,,,,,,,,,,,,,,,.,,::;+################+++#+##+++#####+#++++++++######++##############
################################################################+';;:::::::,,,,,,,,,,,,,,::;+###################++#+###+#########++##+#++#####++###############
####################################################################++';;;';;;:;;::::;;;'###################+#++++++##+#++###++####+##+#+#####+#####+##+#######
###########################################################################+++++++++########################+++#+#+####+++###+++##+###+++#####+#########+######
#################################################+#########################################################++#++###+#+++++###+##+++###+########################
##################################################+++#####################################################+###+#####+#++++#####+#++##++##+#####################
####################################################+++#################################################+#+########+##+++++###########+#++#####################
##################################################+####################################################+#####+###+#####++###########+#+++######################
####################################################################################################+#########+++++++##++#########+#++++#######################
#########################################+###########+##########################################################++####++##########+#+#+++######################
##############################################################################################################+#####+##+###########+###########################
#####################################################################################################################+##############+##########################
######################################################################################################+#############+#####+######+#############################
####################################+##########################################################################################################################
####################################################+#####+##########+#########################################################################################
#########################################################+#+##########++##################################################+########+#+#########################
##########################################################+++##########+#######################################################################################
########################################################################+######################################################################################
###########################################################+#+++###############################################################################################
##############################################################+#########++#####################################################################################
###############################################################################################################################################################
###############################################################################################################################################################
#########################################################################################+#####################################################################
###################################################################+#####################+#####################################################################
####################################################################+##########################################################################################
###################################################################+###+#+##+##################################################################################
no rest for the wicked