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