______   ______   __    __   __   __   __   ______       ______   ______   ______   __   __          __   __   ______   ______  ______       ______   ______   __  __   ______   __   __       __           ______   __   __       ______  __  __   ______       __   __   __   ______  ______   ______   __     __   ______   ______   ______    
/\  ___\ /\  __ \ /\ "-./  \ /\ \ /\ "-.\ \ /\  ___\     /\  ___\ /\  __ \ /\  __ \ /\ "-.\ \        /\ "-.\ \ /\  __ \ /\__  _\/\  ___\     /\  ___\ /\  __ \ /\ \/\ \ /\  ___\ /\ \ /\ \     /\ \         /\  __ \ /\ "-.\ \     /\__  _\/\ \_\ \ /\  ___\     /\ \ /\ "-.\ \ /\__  _\/\  ___\ /\  == \ /\ \  _ \ \ /\  ___\ /\  == \ /\  ___\   
\ \ \____\ \ \/\ \\ \ \-./\ \\ \ \\ \ \-.  \\ \ \__ \    \ \___  \\ \ \/\ \\ \ \/\ \\ \ \-.  \       \ \ \-.  \\ \  __ \\/_/\ \/\ \  __\     \ \ \____\ \ \/\ \\ \ \_\ \\ \ \__ \\ \ \\ \ \____\ \ \____    \ \ \/\ \\ \ \-.  \    \/_/\ \/\ \  __ \\ \  __\     \ \ \\ \ \-.  \\/_/\ \/\ \  __\ \ \  __< \ \ \/ ".\ \\ \  __\ \ \  __< \ \___  \  
 \ \_____\\ \_____\\ \_\ \ \_\\ \_\\ \_\\"\_\\ \_____\    \/\_____\\ \_____\\ \_____\\ \_\\"\_\       \ \_\\"\_\\ \_\ \_\  \ \_\ \ \_____\    \ \_____\\ \_____\\ \_____\\ \_____\\ \_\\ \_____\\ \_____\    \ \_____\\ \_\\"\_\      \ \_\ \ \_\ \_\\ \_____\    \ \_\\ \_\\"\_\  \ \_\ \ \_____\\ \_\ \_\\ \__/".~\_\\ \_____\\ \_____\\/\_____\ 
  \/_____/ \/_____/ \/_/  \/_/ \/_/ \/_/ \/_/ \/_____/     \/_____/ \/_____/ \/_____/ \/_/ \/_/        \/_/ \/_/ \/_/\/_/   \/_/  \/_____/     \/_____/ \/_____/ \/_____/ \/_____/ \/_/ \/_____/ \/_____/     \/_____/ \/_/ \/_/       \/_/  \/_/\/_/ \/_____/     \/_/ \/_/ \/_/   \/_/  \/_____/ \/_/ /_/ \/_/   \/_/ \/_____/ \/_____/ \/_____/ 

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