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