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