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