From Wikipedia, the free encyclopedia
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::;:::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;;:::::;;:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;::;;;;;;;;;;;;:;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;:,:;;;;;;;;;;;;;';;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;::,,:;;''''''''';;;;;';;:;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....................................................``...........................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;:,:;'+++'''++'''';'';;:;;:::;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................````...........................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;:;'+++'''++';++';;;::;;;;;'';:;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................````...........................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;+;:'+++'''''';;;;;;''''''::;':;'::,;;,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................`````...........................................
,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;+':;+++''';;;;;'''+;++'''+'';:'';::,:,:;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................`````...........................................
,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+':;'''+';;;'+'++'+'++'''''+'''':;'';::,:,;:,,,,,,,,,,,,,,,,,:::::::,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........................................................``.......................................
,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,:''::'''';;''++++'''''++++##+++''+';::;'''';:,::,,,,,,::::;;;;;;;;;;;;;;;;;;;:;:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................................................``.......................................
,,,.......,,,,,,,,,,,,,,,,,,,,,,,''::'''';:;'''';'+'++#########+++'';;:::'''':,,:::,::;;;:::::::::::;;;;::;;;;;;;;;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.....................................................`.......................................
,,.........,,,,,,,,,,,,,,,,,,,,;+::;'';;;'+'''+''+#++###':::::'###+'';;:;:'';:;'''+'::,,,:::;;;;;;;;;;;;:::::::::;;;;;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....................................................``......................................
...........,,,,,,,,,,,,,,,,,,;+;:''';:;'+'''''''+@##++',,,,,,,,;+##++'';';':;''';:,,,:::;;;;;;::::::::::::::::::::::::::;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................`..............````.....................................
...........,,,,,,,,,,,,,,,,:'+:;'';;;'''''''''+#@+++:,,,,,,,,,,,,,'##+++';;''';;:,:::;;;;;;;;;;::::::::::::::::::::::::::::::;;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................`````.........```````...................................
...........,,,,,,,,,,,,,,,''':'';;;''''''''+++@#+':,,,,,,,,,,,,,,,,'#+++''+';:::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................`````........```````....................................
...........,,,,,,,,,,,,,:''::';;;;''''''+''#@+;,,,,,,,,,,,,,,,,:,,,:#+++++;:,:;;;::::;;;;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................``````...`````````......................................
...........,,,,,,,,,,,,:+:::;;;;'''''''#+'@+,,,,,,,,,,,,,,,,,,,,,,,,'#+#':::;;;;;:::::::;;;;;;:::::::::::::::::::::::::::::::::::::::;;;;,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................````````````````````.....................................
...........,,,,,,,,,,,;+:;;'';''''''''+++#:,,,,,,,,,,,,,,,,,,,,,,,,,,#+;::::;;;;::::::::::;;;::::::::::::::::::::::::::::::::::::::::::;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................````````````````````.....................................
...........,,,,,,,,:';::''''+;'';''''+'#;.,,,,,,,,,,,,,,,,,,,,,,,,,,;+;,:::;;;:::::::::::;;:::::::::::::::::::::::::::::::::::::::::::::;:;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................````````````````````.....................................
...........,,,,,,,,',,:,'+;'''''''''+'#;,,,,,,,,,,,,,,,,,,,,,,,,,,,,+:,:::;;;;:::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............................``````````````````........................................
...........,,,,,,,:':';:;''+'''''''''+,,,,,,,,,,,,,,,,,,,,,,,,,,,:,;::::::::;:::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............................``````````````````........................................
...........,,,,,,,:++;':;;++''''+''++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;::::::::;:::;;:::;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..............................``````````````````.........................................
..........,,,,,,,,:++;'+;;+''''''+'+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::;:;;;;;:;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.............................``````````````````..........................................
..........,,,,,,,,,++;+++;''+'''++':,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::;;;;;;:::;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:,,,,,,,,,,,,,,,..,,,,,,,,,,,,,...........................```````````````````...........................................
..........,,,,,,,,,'#'++#';'+'''+':,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::;;;;:::;:::;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:,,,,,,,,,,,,,.....,,,,,,,,,,,,,.......................```````````````````............................................
..........,,,,,,,,,'#''++#:;++'+';.,,,,,,,,,,,,,,,,,,,,,,,,,,,;::::::::;;::;;::;;::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::;:,,,,,,,,.........,,,,,,,,,,,,,.......................`````````````````..............................................
...........,,,,,,,,;#+'++#':++'+',,,,,,,,,,,,,,,,,,,,,,,,,,,,:;,:::::::::;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::,::,,,,,,,:::::::::::::::,,.,...........,,,,,,,,,,,,,......................`````````````````...............................................
............,,,,,,,:#+;++#+:#+'',,,,,,,,,,,,,,,,,,,,,,,,,,,,:;:::::::::;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,::::::::::::::,.,...........,,,,,,,,,,,,................````..`````````````````................................................
............,,,,,,,,##;#+##:##+;,,,,,,,,,,,,,,,,,,,,,,,,,,,:;::::::::::;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,::::::::::::,.,,........,................,.........````````````````````````.................................................
............,,,,,,,,+#'#+##;+##,,,,,,,,,,,,,,,,,,,,,,,,,,,:;,:::::::::;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,:::::::::::,.......,.............................```````````````````````..................................................
..............,,,,,.:#+'+##''#',,,,,,,,,,,,,,,,,,,,,,,,,,:':::::::::::;;;;;;;;;;;::::::::::::::::::::::::::::::::,:::::::::::::::,,,,,,,,,,,,,,,,,,::::::::::,,.....,,............................`````````````````````.`................................................,,
................,.,,.##''##+;@:,,,,,,,,,,,,,,,,,,,,,,,,,:;;:::::::;;:;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,::::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::,....,,............................`````````````````````.................................................,.,,
..................,,.'#+:;#';@;,,,,,,,,,,,,,,,,,,,,,,,,,;;:::::;;;;;;;;;;;;;;;::;:::::::::::::::::::::::::::::::,,,,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,::::::::,.,.,..............................``````..``````````..................................................,,,,,
.................,,,,,##;:'''@;,,,,,,,,,,,,,,,,,,,,,,,,;':::::;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::,,,:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,.,...............................``````..``````...................................................,.,,,,,,
..................,,..'#'::;##,,,,,,,,,,,,,,,,,,,,,,,,:;:::::;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,,,..............................`````....````.................................................,,,,,,,,,,,
....................,,,##'+#@'..,,,,,,,,,,,,,,,,,,,,,,;;:::::;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,...............................````......................................................,,,,,,,,,,,,,,,
.......................:#@#@#,,.,,,,,,,,,,,,,,,,,,,,.;'::::::;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,.............................```.......................................................,,,,,,,,,,,,,,,,
......................,.,'++,.,.,,,,,,,,,,,,,,,,,,,,,';:;:::;;;;;;;;;;;;;;;;:::::;:::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,..............................`.......................................................,,,,,,,,,,,,,,,,,
......................,.,....,..,,,,,,,,,,,,,,,,,,,,;'::;::;;;;;;;;;;;;;;;;:;::;;;:::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,....................................................................................,,,,,,,,,,,,,,,,,,
.......................,...,.,,,,,,,,,,,,,,,,,,,,,,,';:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,..................................................................................,,,,,,,,,,,,,,,,,,,
...................................,,,,,,,,,,,,,,,,;';;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::::::::::::::::::::::::::::::::::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::...................................................................................,,,.,,,,,,,,,,,,,,
...................................,,,,,,,,,,,,,,,,'';;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::::::::::::::::::::::::,,,,::,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,::::::::..................................................................................,,,,,,,,,,,,,,,,,,
...................................,,,,,,,,,,,,,,,:';;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::::::::::::::::::::::::::::::::::::,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,:::::::,.................................................................................,,,,,,,,,,,,,,,,,,
....................................,,,,,...,,,,,,;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,::::::::,................................................................................,,,,,,,,,,,,,,,,,,
.....................................,.,.,..,,,,,.''';;;;;;;;;;;';;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,......,,,,,::::::::,..............................................................................,,,,,,,,,,,,,,,,,,,
.................................,,.....,...,,,,,,'';;;;;;;;;;;';;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......,,,,,:::::::::.............................................................................,,,,,,,,,,,,,,,,,,,,
...............................................,.;'';;;;;;;;;;;';;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......,,,,,,::::::::,...........................................................................,,,,,,,,,,,,,,,,,,,,,
...............................................,.'''''';;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........,,,,:::::::::,............................................................,...........,,,,,,,,,,,,,,,,,,,,,,,
................................................,'''''';;;;;;';;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,....,,,,::::::::::........................................................................,,,,,,,,,,,,,,,,,,,,,,,
................................................,'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,::::::::::::....................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................:'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,....,,,,,,::::::::::,....................................................................,,,,,,,,,,,,,,,,,,,,,,,,,
................................................;'''''''';;;;;;;;;;;';';;;;;;;;;;;;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,::::::::::...........................................................,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................;''''''';;;;;;';;;;;;';;;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,:,,,:,,,,,,,,,,,,,,,,,,,,,.......,,,,:::::::;:,.........................................................,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................''''''';';;;;;;;;;;;'';;;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,.......,,,::::::::::,........................................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................''''''''''';;;;;;;;;''';;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,.....,,,,::::::::::::........................................................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................'''''';''''';;;;;;;;''';;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,....,,,,,,:::::::::::,......................................................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................''';'''''''';;;;'';;''';;;;;;;;;;;;;:;::::::::::::::::::::,,,,:,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,:::::::::;:.......................................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................''''''''''';;;;''';;''';;;;;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......,,,,:::::::::;;,......................................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................'''''';''';;;;;''';;''';;;;;;;;;;;;;;;;;;:::::::::::::::::::,,,,,,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......,,,,,::::::::;::.....................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................;''''';;';;;;;;;;;;'''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::,,,,,,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,:::::;:;;;,......................................,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................:''''';;;;;;;;;;;;;;'''';;;;;;;;;;;;;;;;;;;::::::::::::::::::,,,,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,::::::::;;:...................................,,.......,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................,'''''';'';;;;;;;;;;'''';;;;;;;;;;;;;;;;;;::::::::::::::::::,,::,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,:::::::;;;...........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................,+''''';;';;;;;;;;;;;'''';;;;;;;;;;;;;;;;:::::::::::::::::::,::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........,,,,,,:::::::;;;:..........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................'''''';''';';;;;;;;;;''';;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........,,,,,::::::::;;:....................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................;'''''''''';;''';;;;;;''';;'';;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..........,,,,:::::::;;;,..................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................:+'''';''';;''''';;;;;''';;'';;;;;;;;;;;;;:::::;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...........,,,:::::::;;;:..................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................,+''''''';;;''''';;;;;''';;';;;;;;;;;;;;;;;;::;;;;;;::::::::::::::::::::::::::,::,,,,,,::,,,,,,,,,,,,,,,,,,....,,,....,,,,::::::;;;;,.................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................;'''''';;;;;'';;;;;;;'''';'';;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,.....,,,,::::::;;;;,.................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................:''''''';';;;;;';;;;;''''';'';;;;;;;;;;;;;;;;;;;;:;:::::::::::,::::::::::::::::::::,,,,,,:,:,,,,,,,,,,,,,,,,,,,,,,...,,,,,:::::;;;;:.........,,,,....................,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,
................................................,,.''';''';''''';';;;;'''''';';;;;;;;;;;;;;;;;::::::::::::::::::::::,:::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.,,,,,::::::;;;;,.......,,,,,....................,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................,.:+'''''';''';;'';;''''''''';;;;;;;;;;;;;;;;::::::::::::::::::::::,:::::::::::::::::,,,,,,,,:::,,,,,,,,,,,,,.........,,,,,::::::;;;;:.....,,,,,,,....................,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................,,;''''''''';'''';;;'''''''';;;;;;;;;;;;;;;:::::::::::::::::::::,:::::::::::::::::::,,,,,,,,::::,,,,,,,,,,...........,,,,,::::::;;;;:,,,,,,,,,,,,....................,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................,,,''+'''''''''''';;;;'''''';;;;;;;;;;;;;;:::;;::::::::::::::::::::::::::::::::::::::,,,,,,,:::::,,,,,,,,,,...........,,,,,:::::;;;;;,...,...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................,,.:''+''''';'''''';;;''''''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::,,,,,,,::::::,,,,,,,,.............,,,,:::::;;;;;,...,...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...................................................,,.:+'''''''''''''';'''''''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::,,,,,,,,,:::::,,,,,,,....,...,,,,,,,,,,::::;;;;;:...............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.....................................................,,;'++'''''''''''''''''''''';;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,:,,,,,,,,..,....,,,,,,,,,,::::;;;;;;............,..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.....................................................,,,'+++''''''''''''''''''''';;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,......,,,.,,,,,,:::::;;;;;,,...........,,....,,,,,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
......................................................,.:+++++'''''''''''''''''''';;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,:,,,,,,,,,.......,,,,,,,,,:::::;;;;;,............,,,..,,,,,,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.......................................................,,:+'+++''''''''''''''''''';;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,:::,,,,,,,,,........,,,,,,,:::::;;;;;,...........,,,,,,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................:'+++'''''''';''''''''''';;;;;;;;;;;;::::::;::::::::::::::::::::::::::::::::::::,,::,,,,:::::::,,,,,,.......,,,,,:,,:::::;;;;;:...........,,.,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................,.,'+'+++'''''''''''';;';;;;;;;;;;;;;;;;::;;::::::::::::::::::::::::::::::::::::::::,,:::::::::::::,,,.......,,,,,::,::::::;;;;:........,,,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
........................................................,.,..:'+++'''';''''''';;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::,,:::::::::::::::,,,,..,,,,,,,:::::::::::;;;:,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
............................................................,.,;+++''''''''''';;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::;;;,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................,..,.,,:'++''''''''''';;;''';;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,::::::::::::::;;;,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............................................................,.:+'+'''''''''';;;'''';;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::,:::::::::;;;:,.........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..............................................................,,,.;++''''''''''';;;''';;;;;;;;;;;;;;;:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::;;;:..........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............................................................,,,.;++'''''''''';;;;'';;;;;;;;;;;;;;;:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,::::::::;;;:.,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................................,,++'''''''''';;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,::::::::;;;,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................................,..+'+'''''''''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,:::::::;;;,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................................,..''+'''''''''';;;;;;;;;;;;;;;;;::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,::::::;;;,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
....................................................................''''''''''''';;;;;;;;;;;;;;;;:::;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::,,:::::;;;:,,,,,,,..........,..,,,,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
....................................................................'''''''''''''';;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,:::::::::::;;;:.,,,,,,..,......,...,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................................,.,,''''+''''''''''';;;;;;;;;;;;;;;;:;::::;:::::::::::::::::::::::::::::::::::::;;;;::::::::::::,,,,,,,,,,,,,,::::,:::;;;;:,,,,,................,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...................................................................:''''+''''''''''';;;;;;;;;;;;;;::::::::;::::::::::::::::::::::::::::::::::::;;;::;:::::::::,,,,,,,,,,,,,,,,,:::::::;:;;:,,,,,................,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...................................................................;'''''''''''''''';;;;;;;;;;;;;;::;;;:;;;;::::::::::::::::::::::::::::::::;;;:::::::::::::,,,,,,,,,,,,,,,,,,,,:::;;:;:;;;,,,,,................,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................................,.,''''''''''''''''';;;;;;;;;;;;;;::;;;;;;;;::::::::::::::::::::::::::;;;;;;;;;:;:::::,,,::::,,,,,,,,,,,,,,,,,,,,::;;;;:;;;,,,,,....,,,,........,,,,,,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............................................................,..:''''''+''''''''''';;;;;;;;;;;;;;;;;;;;;;:;;::::::::::::::::::::::;;;;;;:;:;;:;:::,,,,,,::::;:::::::,,,,,,,.,,,:::;;;;;;;,,,,,,,..............,,,,................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............................................................,,,;'''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;:;;;;;;::,,,,,,:;::::;::::::::::,,,.,,,,,::;;;;;;,,,,,,,...............,,,..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................................;''';;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;::::::::::;;:::::::;;;;;;;;;:;;;:::::,,,,,,:::;;;;;;:;;;;;;;;;::::,.,,,,::;;;;;:,,,,,,,.......................................,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................................:'''';;'''';'''''''''';;;;;;;;;;;;;;;;;;;;;;;:;;:::::;;:::::::;;;;;;;;;;;;;::::::,,:::;;;;;;;;;;'''';;'''';;:;::,,,,,:::;;;:,,,,,,,,................................................,,,,,,,,,,,,,,,,,,,,,,,
...............................................................,''''';''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;'''''''+++''''''''';;;:,.,,:::;;;,,,,,,,,....,,,............................................,,,,,,,,,,,,,,,,,,,,
.............................................................,,'''';;';'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:::::::;;::;;;;;'''''';;;'''';;;:::;'''';;;,,,,,:;;;,,,,,,,,,,,,,,,.............................................,,,,,,,,,,,,,,,,,,,
..............................................................;''';';';;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;::;;;;;;'''''';;;;;;;;;;;:,,,,,:;''+'';,,,,,,;;:,,,,,,,,,,,,,,...................................................,,,,,,,,,,,,,
.............................................................;'';;;''';;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;''''++';;:::::,:;;:......,,;''+''':,,,,:;:,,,,,,,,,,,,,,.....................................................,,,,,,,,,,,
..........................................................,.;'';;;''';;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;';''+'+'';;::,,....::,........,:'''++';,,.,:;,,,,,,,...............................................................,.,,,,,,
...........................................................:';;;;;''';;''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;';''++''''';;:,.......,,..........,;;::;+';,,,,;:,,,,,,...........................................................,...,...,,,,
..........................................................,';;';;''';;';'''';''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;::::;;;;;;';'+'''';;;';,......`...,...........;,...:+'':,,:;,,,,,........................................................................
.........................................................,;;;;;;;'';;;;;;;;;'''';'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;;;'''''++''';::::;,,......`...:........```;,...`;'+':,,;;,,,.........................................................................
......................``................................,;;;;;;;;';;;;;;'';;;;;;;;;'';'';;;;;;;;;;;;;;;;;;;;;;;;;::;::::;;;;;;::::;;;;;;;''''''';:,,,,,::.`.....``.`:.........``;,..`.:;''':::;.,..........................................................................
....................````................................;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;:;;;::::::;;;;::::;;;;';'''''''';:,....,:;.......``..:.........``;....`;.:;''::',...........................................................................
...................``````..............................;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::::;;:::::;;;';''+'';;;'':,...`..,;.....``....;,......````',...`;`..''',;:...........................................................................
..................```````.............................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;:::::;;;'''++'';:::;',....`..,',.....``.,:;,.....`````+,..``;```;:';:;...........................................................................
................````.................................;;;;;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;;;;;;;:;;::;;;;:::::;::::::::::::;;;;''+++';;:,,.,;........:#':......,;+++:.....`.`.+:.```;``.',:';;...........................................................................
................```................................,;;;;;;;;;;;;;;;;;;;:::::::::::::::::::;;;;;:::::::::::::::::::::::::::;;;;;;''++;:;;:,...:;,,....`,+++++'''+'+++++#+++'''++#+',```;`.`'`:++;...........................................................................
.............```````````````......................,;;;;;;;;;;;;;;;;;;;:::,,,:::::::::::::::::::::::::::::::::::::::::::::;;;'';'++;:::::,....,+',....;+++##+##+++++++++++++++++++#++#+#;``;`:'':...........................................................................
............````````````````.....................:';;;;;;;;;;;;;;;;;:::,,,,,,,,,::::::::::::::::::::::::::::::::::::::::;;;';;'++'::,,:;,....:#++##########+####++++++++++++#+++######++,,;`;'',...........................................................................
.............``````````````````.................:';;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::;;;'';'++';',,..:;:,,,:+#+##+++++++#++++++##+++#+++++++++++++''+#+''+.'':............................................................................
.............```````````````````...............;';;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::;;;'''''+';:;'...`:''''++++++++++++++#++++++++++++++++++++++++++++++'++'+:,............................................................................
.............`````````````````````............';;;;;;;;;;;;;;;;;;;:::,,,.,,,,,,,,,,,,,,,::::,:::::::::::::::::::::;;;;''++++';::;+....;++++++++++++#+++++++++++++++++++++++++++++++++++++++#+..........................................................`...`...............
.............```````````````````````.........;;;;;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;;'''+++'':,,,;#',:'+++++++++++++++##++++++++''+++++++++++++++++++++++++;;;.........................................................`..``................
........`````````````````````````````.......';;;;;;;;;;;;;;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;::::;;;;;''++++';':,,,'+'+++++++++++++++++++++++++'+'''''''++++''+++++++++++++++'::......................................................``.`.,,.``..............
.......`````````````````````````````.......';;;;;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;::::;;;;;;''+++';;;+';:;+++++++++++''''''''++++++++''''++'''''+'';;;'+++++++++++++;:,.....................................................````...,.``..............
....```````````````````````````````.......';;;;;;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,::,:::::::::::::;;;;;;''++++;::;++++++++++++++''''''''''';;'+++'''++''''''';';;'';;'++#+++++++++;:,.....................................................````.....````............
.....`````````````````````````````.......;';;;;;;;;;;;;;;;;;;;;;;;::,,,,,,,::::,,,,,,,,,,::::::::::::::;;;;;;;'''++++''++#+++++++++++++''''''''';;;;;;;'+++++++''';;;;:::;;;,;;'++++++'+++;:,.....................................................````...,.`````...........
...```````````````````````````````......:';;;;;;;;;;;;;;;;;;;;;;;:::,,::::::::::,,:,,,,,,,:::::::::::;;;;;;;'''+++++++++++++++++++++''''+'''''';;;;;;;;;;''+'''';;;;::::::::;,;;;+:;++++''',;....................................................``````.`..`````...........
...```````````````````````````````..`..:';;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::,::::::::::::;;;;;;;;''+++#++++++++++++++'''''''''''''''';;;;;;:::;;;;++''';:;::::::::::::;;+';'+#''+:'...................................................```````.``.`````...........
...````````````````````````````````...,';;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;;'''++++++++++++++++'''''''''''''''''';;;;;;::,,,::;;'++'';;:::::::::::::;;++,.:+;';;...................................................```````. `.``````..........
...`````````````````````````````.``..,';;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;:::::::::::::::::::::;;;;;'''+#+++++++++++++''''''''''''';;''';;;;;;;;:::::::::;;;'+'';:::,:,::::::,::;'.,..;;;;,.................................................```````..`..```````....```..
...``````````````````````````````.`..';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;:::::::::::::::::::;;;;;;''+##+++++++++++++''+'''''''''''''';;;;;;;:;;:::::,:,,::;;''';;::,:,,,:::::,.;;+':,,`.,:,..............................................`````````.....````````````````
...```````````````````````````````..;';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;:::;::::::::::::;;;;;;''''+##++++++++++++'''''''''''''''''''';';;;::;;:::,:,,:::,::;''';;:,,,:::::::::::::;':..::;..............................................`````````.....````````````````
...``````````````````````````````.`:';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::::::::'';;:;;;;;;;::;;;;;;;''''+#+++++++++++++#++++'''''''''''';;;''''';;;;:;;::,,:,:::::::;;'';:::::::::::::,:::,;+;:` .,...........................................```````````.....````````````````
..````````````````````````````````:';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::::::::::'';;;;;;;;;;;;;;;'''''+#++'''+++++++++++++++''''''''''''''';;;;'';;;;;:::::,:::::::::;;';;:::::::::;;;:::.,;';, `.,..........................................````````````.....````````````````
..```````````````````````````````.'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::'+;;';';;'';''''''+##+++:....,++''++++++++++'+''''''''''''';;;;;;;;;;::::::::::::::::;;;;;::::::::::::,,,:;++``.,,.....................................`````````````````.....````````````````
..```````````````````````````.```;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;++'';''''''''+###+';';,.....:;....'+++++++++++'''''''''''';;;;;;;;;;:::::::::::::::::;;;;::::::::::,,,,;:'+,,:,,....................................``````````````````.....````````````````
..``````````````````````````````,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;::::;'+++++####++++''';;;:,,,.,',.....;+'::'+++++++'''''''''';;;;;;;;;;;;;;;:::::::::::::;;;::::::::,,,,:::'+,`,;:;,..................................```````````````````...,,.```````````````
..``````````````````````````.```'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;::::::;;'+'';:,,::;''+'':,,,,,',,....:+....,+++++++'''''''''';;;;;;;;;;;;;;;;;;;;;;:::::;;::::::::,,,,,:;'', `;:;',..............................``````````````````````...,,.```````````````
```````````````````````````````,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::;;;:::::::::::::,,,,::;;'';::;',,,..,:'.....;+;;''++++'''';;';;;;:;;;;;;;;;;;;;;;;;::::::::;:::::,,,,::;+';```.:;;;;,.........................``````````````````````````..,,,.```````````````
```````````````````````````````;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::;;;;;;;;;;;:::::::,,,,,:;''';::,.,,;'.....:;,...:'+++''';'';';;;;:;;:::::::::;;:::::::::::::,,,,,::;'':``,`..:;;:;;.........................``````````````````````````,.,,,.`````````````..
``````````````````````````````,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::;;;;;;;;;;;;;:;;::::,,,,:'';::,,,;;....,::....,:++++++''''''';;;;;;::::,,,,,,:::::::,,,,,,::,,:;'':` ``:.`.:;;::;,............``````````````````````````````````````,..,,.``````````.....
``````````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;;;::;;;;;;::;::::::'';:::';,...,::..`..,;....:''''''''';;;;;;::::,,,,,,,,,,,,,,,::,::;;'':` `.:,..;'::;;:...........```````````````````````````````````````,.,,,.``````....,,,,,
```````````````````````````.`,'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;:::;'':;':,...,;:..`..,'..````:'''+'''';;;;;;:::::::::::::::::::::;'':,,:```..:,..''::::;..`.....``````````````````````````````````````````,,,,,.````...,,,,,,,,
`````````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;:;;;''''::...,;:,.`..,'.......:+':,`.,:;'';;;;:::::::::::::;;;;;';,``` :.....::.,''::::;,.......``````````````````````````````````````````,,,,,.`...,,,,,,,,,,,
````````````````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:;;;'+':,..,;:,``..,;.````...;.```````,''';;;;;;;;;;;;';;;:;'':` ```:,....::.:'':::;;:`.....```````````````````````````````````````````.,,,,,.,,,,,,,,,,,,,,
````````````````````````````;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;:;:;'+':,:;:,``.,::.`````..:........,:+':....:'+''';.`````,',`````.,,....:;,:'':::;::`....````````````````````````````````````````````.,,,,,,,,,,,,,,,,,,,,
``````````````````````````.`';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;;;''';;:,`..,;,.`````..:...```...:':` `` ``.'++```````.;,`````.,:,...:','';:::;;;..``````````````````````````````````````````.``...,,,,,,,,,,,,,,,,,,,,
```````````````````````````:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;:;'+':,...,',.`````..;...`````.,;,..``````.';``````..:,`````..:,..,:';++::::;;;..``````````````````````````````````````.......,,,,,,,,,,,,,,,,,,,,,,,
```````````````````````````';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;::::::::::::;'+';,..,'...````..;...`````.,'..........;,........:,````...;,.,,;'+'',::;::;.`.`````````````````````````````````..,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
````````````````````````.`,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;:;'+':,;',,...```.;...``````,'.`````....',`.......,:``.`.`.;..,,''+':::::::;.`.````````````````````````````````.,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,
``````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;'';'';'';;;;;;;;;;;::::;;;:;;;;;::;++''',,......,:..```````,'.`````....',`.......,:``..``.;,..:++;,,,:;:::;...``````````````````````````````.,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,
`````````````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;;:;'++':,,.....::..```````,'.`````...`':`........:.`.....;,.,'+;,,,::;:::;.```````````````````````````````.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
````````````````````````.,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;';;;;;;;';;;;;;;;;;;::::;::::;;;;::'++;,.....::...``````:'.`````.`.`;:`........:,``...,;:,''::,,,::;:::;.````````````````````````````..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
````````````````````````.:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;;;;;;;;:::::::::;;;;:::;'+;,..,;;....`````:'.`````.`..;:`.......,::``...,;;'':,,,,,::;:::'``````````````````````````...,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,
`````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::::::::::;:;::;'+;,:';.....````;'.`````.`..;;...```..,;;``.`.,+'::,,,,,::::::;:`````````````````````.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,
````````````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;::::::::::;;;;::'+'';.........;;,`..```...;;...```..,;'````,;;:,,,,,,:::::::'.``````````````````.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.......`````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;::;;;;::::::::::::::;;::;;';,.......;;.```````..;;,````..,::;,`.:;:,,,,,,,:::::::;'`.``````....,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
............`````````...,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;';;:::;:::::::::::::::::::;::;';,,,.,;;...````...;;:``.`.,:;:;;;';:,,,,,,,,:::::::';``````..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,
........................:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::::::::;:;:::::;;';;;;:..`...,.,;;;,.,,,:;;;'+':,,,,,,,,:::;::::;',```..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:,::::,,,,,,
........................;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;::::::::;:;:;;:;;''',.....,,;;;;;:::;;'+';:,,,,,,,,,:::::::::';`..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::,,,,,,,
........................';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;:,,:::;:::;;;;;::;;;'';;;;;;;';;''+';:,,,,,,,,,,,:::::::::'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,
........................';;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;::;::;;;::;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::,,::,,::::;;;;;;::;;;;''''++';:::,,,,,,,,,,,,:::::::::;':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.......................,';;;';;;';;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;::::::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::,,,,,::::::;;::;;;;;;;;:::::,,,,,,,,,,,,,,:::::::::;'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................,...,,';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;:::;::;;;;;:;::::::;:;;;:;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::,,,,::,,,::,,,:;;::::;::,,,,,,,,,,,,,,,::::::::::;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,:::
..................,...:,';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;::;;:::;;::::::::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::,,,:,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;;''',:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::
..................,,.,:,';;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;::;:;;;;:::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;;'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::
,.....,,..,...,...,:.:,,';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:::;;;;;;:::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;'''''::,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::
,,,...,,,.,..,,,,,,:,:,:';;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;;;;;:;:::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,,,,,,,,,:::::::::::::::;''''''':,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::
,,,...,,,.,.,,,,..,,::,:';;;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::;:::;;;;;:;;::::::::::::::::;;;;;;;;;;;;;;;';';;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::;''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::
,,,,.,:,,,,,,,,,,,,,::,:';;;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;:;:::::::;;;;;::::::::::::::::::;;;;;;;;;;;;;;;;;';';;;;;;;;;::::::::::::::::::::::::::::::::::::::;;''';'';;''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::
,:,,,,:,:,,,,:,,,,,,::,:';;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;::::;;;::::::::::::::::::::;;;;;;;;;;;;;;';;;;;;;;''''';;;;:::::::::::::::::::::::::::::::::;''''''';;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,::::::::::::::::::
,:,,,,:,,,,,,::,,,,,::,:';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::::;;;::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;';;''''''';;;;:;;:::::::::::::::::::::;;;'''''''';;;;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;:::::::
,:::,,:,:,:,:::,,,,,::,:';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;::::;;;;;:::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;'''''''''''''';;:::::::::::::::;;:;;''''''';;;;;;;;;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,::::::::::::::::::::::::
:::::::::::,:::,,,:,::::';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::::;;;;;;;;::::;;;;;;::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;'''''''''''''';;;;;;;;;;;;;;;;;'''''''';;;;;;;;;;;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::;::::
::::::::::::::::::::::::';;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;;;;;;;;:::;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;;;;;;'''''''''''''''''';;;;;;;;;'''''''';'';;;;;;;;;;;;;;'',,,,,,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,::::::::::::::::::::;::::
::::::::::::::::::::::::'';;;'''';;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;;;;;;:::;;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;;;;;''''''''';;''''';'''''''''''''''';;;;;;;;;;;;;;;;;;;'':,..........,,,,,,,,,,,,,,,,,,,,,,,,,:::,,::,,,,,,::::::::::::::::::::::::::
::::::::::::::::::::::::';;;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;;;;;;:;;;;;;;;;:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;''''';;;;;''''''''''''''''''';'';;;;;;;;::;;;;;;;''.....```....,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::
::::::::::::::::::::::::'';;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;;;;::::;;;;;;;:::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;';'''''''''''''';;;;;;;:;;;;;:::;;;;;;'',`........,.....,,,,,,,,,,,,,,,,,,,,,::::::,,::::::::::::::::::::::::::;::::
::;::::::;::::::::::::::'';;'';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;:::::;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;''''''';;;;;;;;:::::;;;:::::;;;'';,,,,,....,,.,,,.......,,,,,,,,,,,,::,::::::::::::::::::::::::::::::::::;::::
::;::::::;::::::::::::::'';;'';'';;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;::::::;;;'';:::::,,,,,,,,,,,,,,,..........,,,,,,::::::::::::::::::::::::::::::::::;:::::
::;;:;:::;;:::::::;:::::;';''';';;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::::::::::::::::::::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::;;;''::,,,,,,,,,,,,,,,,,,,,,,,,..........,,,,:::::::::::::::::::::::::::::::::::::
:::;;;;::;;:::::::;::::;;'';''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;:::::::::::::::::::::::::::::::::::::::::;;:;;;;;::;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::;;;;'':::,,,,,,,,,,,,,,,,,,,,,,,,,..,,..,.....,,,,,::::::::::::::::::::::::::;;::::
:;:;;;;;;:;;;;:::;;;:;:;;'';''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;:;;::::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;:::::::::::::::::::;;;;'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........,,,,::::::::::::::::::::::;::::
:::;;;;;;:;;;;:::;;;:;:;;';''''';;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;:::::;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::;::;;;;;;;;;:;:::::::::::::::::::::;;;;;';,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,,...........,,,,:::::::::::::::;;::::
:::;;;;;;::;;;;::;;;:::;;''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;::::::::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;::::::::::::::::::::::;;;;;';,:,,,,,,,,,,,,,,,,:::::::::::,::::::::::::::,,,,..........,,,,:::::::::;;;:::
;::;;;;;;;;;;;;;:;;;:::;;'';'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;:::::;:::;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::::::::::::::::;;;;';':::::,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,.......,,:::::::::;::;:::
;:;;:;;;;;;;;;;:::;;;;:;;;';'''''';;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::::::::;:;::::;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:::::::::::::::::::::::::;;;;;;';:::,:,,,,,,,,,:,,,:::::::::::::::::::::::::::::::,,,.....,,:::::::::::::::;:::
;:;;:;;;;;:;:;::::;;;;:;:;''''''';;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::;;;;;;';::,:,::,:,,,,::::::::::::::::::::::::::::,,,,.........,:::::::::::::::::::;;:;
;:;;:;;::;;;::::::;;;;:::;'''''''''';;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;;::;::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::;;;;;;';:::,,::::::,,:::::::::::::::::::::::,,,...........,,,::::::::::::::::::::::;::
::;::;;;:;;;::::::;;:::::;'';''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;::::::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::::::,,,,,::::::::::::::::::,,,,:::::::::::::::::;;;;;''::,:,:::::::,::::::::::::::::::,,,......`......,,,:::::::::::::::::::::::::;:::
;:;:::;;::;;:::::::::::::;''''''''''';;;;';;;;;;;;;;;;;;;;;;;;;;;;:;:::::;:;;;::::::::::::;;:;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,::::::::::::::,,,,,,,,,,,,::::::::::;;;;;'':::::,:,::::::::::::::::::,,.............,,,,:::::::::::::::::::::::::::::::::;
::;::::::::;:::::::::::::;;';'''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:;;;;:::::::::::;;;;;;;;;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,:::::::::::::,,,,,,,,,,,,,:::::::::;;;;;';::::::::,,::::::::::,,,...........,.,,,,:::::::::::::::::::::::::::::::::::::::
:;::::;:::;:::::;:;::::::;;';'''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::::::::::;;;;;;;;;:;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,::::::::::,,,,,,,,,,,,,,,:::::::::;;;;'';:::,::::::::,,,,,,................,,,,:::::::::::::::::::::::::::::::::::::::::
:;:::::;::;:::::;::;:::;;;;'';''''''';';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;:::;;;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,::::::::,,,,,,,,,,,,,,,,:::::::::;;;;'';:::,:,:::::,,,..............,..,,,,,:,::::::::,:::::::::::::::::::::::::::,:::,
::;::::;::;::;::;:::;::;;;:'';'''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:::::::::::::;:;::::::;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,:::::::,,,,,,,,,,,,,,,,::::::::;;;';''::::,,:::::::,,,..........,,,,,,,,,,,,,::::::::::::::::::::::::::,:::::::::::::,
::;::;:;:::::;::::::;::;;::;'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;::::::;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,::::::,,,,,,,,,,,,,,,,:::::::::;;'''';,,,:,:::::::::,,,,,,,,,.,,,,,,,,:,,,,,,,,,:::,:::::::::,,::::::::::::::::::::::,
::;::;;;;:;;::::::::;;;;;;;;'';''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::;;;:::::;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,::::,,,,,,,,,,,,,,,,,::::::::;;;'''';,,::,,:::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,::::,,::,,,,:::::::::,,::;;:::::::,::,,
;:;::;:;;:;;::.,::;:;;;;;;;:'';''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;::::;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;''''':::,:,::,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;,;:,::::::::::,
;;;;;:;:;;:;::,,..;::;;;;;:;;';'';'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::;;;;''''':::,,,:,,:,,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,....,.,,,,,,,,,,,,,,,,,,:::,,,,,::::::::
;;;;;:;;:;::..,,,::::;;;;;;;;''''';''';'';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,::::::::;;;;;'''';,::,:,,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....................:;......,,,,,,,,
:;;;;::;::;..,,,,..::;;;;;;;;;'''';''';'';'''';;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;:::::::::::;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,:::::::;;;;;;'''';,:,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................:;,.............
;;;;;;::;:;:;,,,.:,:;;;;;;;;;;''''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,::::,,,,,,,,::::::::;;;;;''''':::,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....::,.............
;;;;;;::::;;;,:,.::::';;;;;;;;''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;::;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,:,,::::::::,,,,,::::::::;;;;;''''';:::::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,;:....``.......
;;;;;::,,::;;;;:,::::;;;;;;;;;;+''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;::::::::::::;;;;::;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,:::::::::::::,,,::::::::;;;;;'''''';:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,......,:;...````````..
:;;;:,,,,,::;;;;;;::.,;;;;;;;;:''''''''';''''';;;;;;';;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,:::::::::::::,::::::::::;;;;;'''''':::;::::::::::,,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...........::,..````````..
:;;;;;,.:.,:;:;;;;::.`,,.:;;;;;'+''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::::::;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,::::::::::::::::::::::::::;;;;''''''':::;:::::::::,::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................:::..`.```..`.`
;;;;;::.::,;;;;:;,,:,...,:;;;;;;+;'+''''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;::::;;;;;::;:::::::::::::::::::::::::::::::::::::,,,,,,,,:::::::::::::::::::::::::::;;;''''''';::;::::;::::::::,:,,,,,,:,::,,,,,,,,,,,,,,,,,,,,....................:::......``.`..
;;;;;;;:;:;;;;;::```,,,:,.,;;;;;++'''''''''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::::;;;::;::::::::::::::::::::::::::::::::::::,,,,,,,,:::::::::::::::::::::::::::;;;;''''''':::;:::;:::::,::,:,,:,,:::::::::,,,,,,,,:,,,,........................,::.......`.`.`
;:;;;;;;;;;;;;;;:.`,:.,,,.,;;;;;;+'''+'''''';''';'';;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;:;::::;;:::;;;;::;;::::::::::::::::::::::::::::::::::::,,,,,,,::::::::::::::::::::::::::;;;;;'''''''::;':::;::;;:::::,::,,,,,,:,:::::,,,,:,,,..................`````.....:::....```.`...
;;;;;;;;;;;;;;;;;;::``,`.;;;;;;;;+'''+'''''';'''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;::;:::::::::::::::;::::::::::::::::::,:::::::::::::::::::::::::::::;;;;;;;''''''';;;';:;;:;;;::::::::,,,,:::,:::::,,,,....................``````......:::...`````.,.,
:;;;;;;;;;;;;;;;;;;...;`..;;;;;;;'+'+'''''''';;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;:;;::::::::::::::;;;;:::::::::::::::::,,:::::::::::::::::::::::::;;;;;;;'''''''';;;;;;;;;;;:;:,:::,:,:,:::::,:,,,,..............`...`.````````......,::,...`....,,,,
;;;;;';;;;'';;;;;;;:,;';,:;;;;;;;;++'''''''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;:::::::::::;:;;;;;;;::::::::::::::::::::::::::::::::::::::::;;;;;;';''''''+;'';;;;';;;;;;:,;:::::::::,,,,,,,...............``.````.`.``````.....,::::.....,,,,,,,
;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;+'+''+'''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;:::::::::::;:;;;;;;;:::::::::::::::::::::::::::::::::::::::;;;;;;;''''''''+;'';;;;;;;:;;;:;;:::::,,,,,,,..................````````.`.``````....,:::;,...,,,,,,,,,
;;;;;;;';;;;;;;;;;;;;;;';;;;:;;;;;;'''';''''+'''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;:::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::::::::;;;;;;;''''';''+';'''';;:;::;;::;;::,:,,,,,................````````````..`.`````....,::::::.,,,,,,,,,,,
;;;;;;;;;';;;;;;;;;';';'';;;;;;;;;;;''+;''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;::::::::::::;;;;;;;;;:;;;:::::::::::::::::::::::::::::::;;;;;;;;;'''''''++'''''';;;;:;;;:;;::;::,.:...............````````````..``,..``.`.`...:::::,,,,,,,,,,,,.,
;;;;;;;;;;;;;;;;;;;;'';;;;;;;;;;;;;;';+;+'''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;:;;;;::;;;:;::::::::::::;;;;;;;;::;;;::::::::::::::::::::::::::::::;;;;;;;;;''''''''+'''';;;;;;;;;;;;;;:::::.:,,,,..........``````````.```..``,..``.``...,::::,,.,,,,,,,,,,..
;;;;;;;;;;;;;;'''';;;'';';;;::;;;;;;;;';+''+'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;;;;:::::::::;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::;;;;;;;;;''''''''''+';;;;;;;;;;;;;;;;;;;;:;:,:..:........`````````````..``..``,,..,,....,.;::,,,.,,,,,,,,,...
;;;;;;;;;;;;;;;;''';;';;;;;;;;;;;;;;;;';+;'''''''';''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;'''''''''++';;;;;;;;;;;;;;;;;;;;:;:;,.::.....````````````````..``....,,.,,`.,,.,,::,,,,.,,,,,,,,,,,,
;:;;;;;;;;;;;;;;;;'';;;;';;;;;;;;;;'';;'';'++'+''''''''';;;;;;;;;;;;'';;;;;;;;;;;:;;;;;;;;;;;;;;;;::::;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;;'''''''''++''';;;;;;;;;;;;;;;;;;;;;:;,:;:.,:.````````.``.``````..``.,.,,,,..,,.,,,,:,,::,,,,,,,,,,,::
:;;;;;;;;;;;;:;;;;;;;;'''''''';;;';'';;;;;+''++'''''''''';;;;;;;;;;''';;;'';;;;;::;;;;;;;;;;;;;;;;:::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::::;;;;;;;;;;'''''''''++';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:,:,```````..```.``````....,,.,,,,.:,,,,,,,:,,,:,,,,,,,,,,,,,
:;;;;;;;;;;;;:;;';;;';''';;;;'';;';;;;;';;+'+++''''''''';;;;;;';;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;:::;;;;;;;;'''''''''''++';''';;;;;;;;;;;;;;;;;;;;;;;;;;,,;,````````````.``..`.`,,.,,.,,,,,,,,,,,,,:.,,,,,,,,,,,,,:,,
;;:;;;;;;;;;;::;';;;;;;';'';;;;;;';;';;;''''+++'''''''''''';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;:;;;;;;;;;''''''''''''++''+'';;;;;;;;;;;;;;;;;;;;;;;;;;;,::``,`.`.,`.```,```...`.,,,,,,,,,,,,,,,,,,:,,,,:,,,,,,,:::::
;;:;;;;;:;;;;;:;;;;;;;;;;;;;;;;;;;'''';'''''+++;''''''''''';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;:;;:;:;;;;;;;''''''''''++++''''''';';;;;;;;;;;;;;;;;;;;;;;::::.,,...`:`.```.``..,.,,,,,,,,,,,,,,,,,,,,,,,::;::::::::::::
::;;;;:;:;;;;::;;;;;;;;;;;;;;;;;;;;;'+';';'''+';''+''''''''';''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;'''''''''''+++++''''';;''';;;;;;;;;;;;;::;;;;;;;;:::...,.;.````.`.,.,,..,,,,,,,,,,,,,,,,,,,:,:::::::::::::::
::;;;:;;::;;;::;;;;;;;;;;;;;;;;;;;'';;';''';''';'+''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';''''''''''+++++''''''''''';;;;;;;;;;;;;;;;;;;;;;:::;,,,::`;.``....`..,,,,,,,,.,,,,,,,,,,::,::,:::::,,::::::::
::;::;;;::;;;;::;;;;;;;;;;;;;;;;;'';;'''''''''';;+'+';''''''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''+++++'''''''''''';;;;;;;;;;;;;;;;::::;;;;;;::;;:,;,``:..,`,,,,,,,,,,,,,::,:,,,:::::::,::::,,:,::::::
::;::;;;::;;;;;:::;;;;;;;;;;;';;;';;';;'''';;'+;;+++;;';''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;':;;;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''++++'+'+'''''';';;;;;;;;';';;;,..,:,;:;;;;;;:;;;:;:,.;`,:.,,,,,,,,,,,:,:::,,::,:::::::::,,,,::::::::
::;::;;:;;;;:;;::;;;;;;;;;;;;;;;;;;;;''''''';'';;''+;;''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''++'+'''''''''''''';;;;;;;;;;;;:,,,,,:,,:;:;;;;;;';:;;.;,,,,,:,,,,,,,,:,,,,:,,,,,,::::::::::::::::::::
;:::::;;:;;:;;::;;;;:;;;;;:';:;;';;;'';'';;';;'';;'';;+++''''''''''''';;'''';;;;;;;;;;;;';;;;;';;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''++++++''''''''''''''';;;;;;;;;;;;;;:..,,,,:;;;;;;;';:;;;::,,:,;,,,,,:::::::,,,,,,,,::::::::::::::::::::
;:::::;::;;;;:;:;;;;;;;;;;:;;:;;';;;''';;;;;';;';;;;;;++'''''''''''''''''''''';;';;;;;;;;'';;';';;;;;;;''';';';';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''';;;;'''''''''''+++++++++'''+'''''''''';;;;;;;;;;;;;;;;..,.:.::;;;:;::';,';';;,:;,;,,:,:;:::;,:::::::::::::,:::::::::::::::
;:::;;;::;;:;:;;;;;;;;;;;;;;':;;';''''''';;'';;';;;;:'+;+'''''''';;'''''''''''''''';;;;;;;''';;;;;;';';'''''';''';;;;;;;;;;;;;;;;'';;;;;;;;;'''''';;'''''''''++++++++''''''''''''''';';;;;;;;;;;';';;;;,;:,;::;:.,:::,:':;;';;:;;:;:,;,;;:::;:::::::::,:::,,:::::::::::::::
:;;::;::;;,.,:;;;;;;:;;;;;;:':;;''''';;'';;';;;;;;';;';'+''++''''';;'''''''''''''''''';;;''''';;'''''''''''';;'''';;;;;;;;;;;;;;;;;;';;''''''''''''''''''++++++++++''''''''''''';''''';;;;;;;;;;;;';;;;;;;;;;;,.,..,,,;;;;;';',;;:;:,';':;::':::;:,,,::::::::::::::::::::::
;;;::;;::,...::;;;;;;;;;;;;;;;;;;';;;;;'''';;;;;;:';;;;+';;;'+++'';;'''''''''''''''';''';'''''';'''''''''''';'''''''''''';;';;;;;;'';'''''''''''''''''++++++++++''''''''''''';'';'''''''';;;;;;;;;'';;;;;;;;;;::,.:.:,:;;;;';':';;';:''::;:;':::;::::::::::::::::::::::::::
:;;;;;;::....,;:,:;;;;;;;:;';;;;;';;;;;;'''';;;;';;';;;;:;;;;'+'++';;''''''''''''''';'''';''''';''''';'''''''''''''''''''''''''''''''''''''''''''''''+++++++++'''''''''''''''';';'''''';;;;;;;;;;;;;';;;;;;;;;;;,,',:;;;;;;;;;;';;';;''::':;':::':::;;:::::::::::::::::::::
.:;;:;;:,....,;..,;;;;;;;;:'';'';;;;;;;;;'''';;;';;';;;;'';';;'';++;:'+'';;''''''''';'''''''''';;'''';''''';;'''''''''''''''''''''''''''''''''''+''+++++++'+'''''''''''''''''';;;;''''';;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;'''';'';;:':;'::;;:::;;::::::::::;::::::::::
..:;,,::.....,:...;;::;;;';;;;'';;;;;;;;;;''';;;'';;;;;;+';+;;;';;+;;;+'';;'''';;;'':';''''';'';;''''''''''';''''''''''''''''''''''''''''''''+++++++++++++'''''''''''';''''''';;;;;''';;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;'''';'';;;';;'::';:::;;:::;:::::::::;;:::;::
.`.:,,,,.....,,,..,...;;;;;';''';;;;;;;;;;''';;;'';';;;;;';'';;;;;;'';'';;;;+''';;;':'';'+''''';;''';'''''''''''''''';''''''''+++''+''+'+++++++++++++'''+''';'''''''''''''''''';;;''';;;;;;;;;;;;;;;:;;;;;;;;;;;;;''';;;;;;;;;;;'';''';;;';;'::';;;;;;::;;;:;;:::::::;;::::
.`..,,,......,,,......;;:,:';';';;;;;;;;;;;;;;;''';;;;;;;;;;;;;;;;;';;;;;;;;'';;;;;':;';;''''';;;;'';''';;';'''''''''';''+''++''+;++'+++++++++++++++'+++'''';''''''''''''''''''';;;';;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;';''';;;;';;';;';;;;:;::';::;;:;;:::;::;;;;
,...`.,,......,,......,....;';:;;;;'';;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;';';':;'';;;;;+:';;+';;;';';;''++'''+++;;++;;++''+;++;++++;++++++++++'''''''';''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';';;;';'';;'';'':;:;;;:';::;;::::::::;;
.,.....,......,,...........;:..,:;';;;;;;;';;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::';:;;;;'';;;+';';;;+;'+++'''++++;;++;;++;'';'';'+';'++++++'++'';;''''';''''''''''''''';'''';;;;;;;;;;;;;;;:;;;;;;::::;::;;;;;;;;;;;;;;;;;;;;'';';;'';'';'''''':':;;:;';::;;;::::::;;:
.,,....,,....,,,....`............,:;;;;;;;';';;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::';;;;;;'+;;:+';';;;';+++''''++++;;;+;;'';'';'';+';;'++'+++++''';;;''';;';''';';;'''''';'''';;;;;;;;;;;;;;;;;;;;;;::::,,:;;;;;;;;;;;;;;';;;;''';';';';'';'';;'':';';;';';:';:::::::;;;
,..,....,....,,,.........`........:;;;;;;;;;;;;;';';;;;;;;;;';;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;''';;;;;';;;;'''''''';;''+;;'';';;'';'';';;;'+'++''''''';;;''';';;'';;';;''''''''';;;;;;;;;;;;;;;;;;;;;;,::,,,,.,;;;;;;;;;'''';;;;;;;'';';;;';''''';;'';;;';;';';:';:;;::::;;;
.,,.,,,.,,...,,,....`............,;;;;;;;;;;';;;''';;;;;;;;';';;;;;;;;;;:;;:::;;;;;;;:;::;;;:;;;;;;';;;;;;';'';;''';;;';;;;;;+;';;';'';;'++'''''';'''';;;';;';;''';';;;';'';;;;;;;;';;;;;;;';;;;;;;;:::.,,:,,,,;;;;;;;;;''';;''';;;';'';;';'''';;''';';';';;'':';:;;;;;;;;;
..,,,,,::::::::,...`...........,::,,,;;;;;;;;;;;''';;;;;;;;';;;;;;;;;:;;;;;;:::;;:;;::;::;;;:;;';::;'':;;';;';;;+'+';;;;;;;;;+;;;;';';;''+''''''';;''';;;;;;;;;'';;;;;;'''';;';;;';;;;;;;;;';;;::;;;'::,.....:;;;;;;';;;';'';;';;;'';';;;';;;''''''';';;;';;'';';:':;;;;;;;
..,,,::,,`..,,,,..........`...,......:;;;;;;;;;;;;;;;;;;;;;;++#@@@@#+';;;;;;;:::;;;;:::::::::::;::::;':;;;;;';;;;;;'+':;;:;;;;';;;'';;;;'';';;''';;;'';';;;:;;;;;;;;;;;''';;;'';;;:;;;::;;;;::::::;;;:::.,,:;:;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';';;;;;;;;;';
,,,,:...,.,,,,,@@@@@@@@@@@@@@........:;;;;;;;;;;;;;;;;;;;#@@#;,` `.;#@@#;:;;;:::;;;;:::#@@@@@@@@@@@@@@;;;;;;';;;;;;;'';;;;;;;;;;;;;;@@@@@@@@@@@@@;;'';';;'#@@@@@@@@@@@;''';;;;;#@@@@@@@@@@#;@@@@@@@@@@@@@@@;;;;;;';;@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@''';;';':;;';
,,,:,,,,,.:::;,@ @.......:;;;';;;;;;;;;;;';;@@; ;@@;;;;::;:;;:::@ @;;:;;'';;;;';;;;;:;;;;;;;;;;;;@ ;#;;';';;;@ @;''';;;;;@ :#;@ @;';;;;;;;@ @;@ ;';;;';;':';;
.,:,,,:,,;;::::@ @.,..,,,;;;;';;;;;;;;;;;'#@, ,@#:;;::::::::@ @;;;;;;;;;;;;;;;:;;;;;';;;;;;;;@ `@;;;;;;;'@ ++;'';;;;;@ #+;@ @;;;';;;;;@ @:@ ;';'';;'':';;
.;,,::;::;:;,,,@ @...,,:;;;;;;';;;;;;;;;;@# +@;:::::;;::@ @;;;;;;;;;';;;;;;;:;;;';;;;;;;;#: @;;;;;;;#' .@'';;;;;'# @;;@ @;;;;;;;;;@ @:@ ;';'''''';';;
.:,:;:;;;:::,,,@ @,:;;'';;;;;;';;;;;;;;;@: ,@;:;:::::;@ @;;;;;;;;;;;;;;;;;;::;';;;;;;;''# @;;;;;;;@. @''';;;;#, `@;;@ @;;;;;;;;;@ @:@ ;''''''';'';'
..::;,,.:;,.,,,@ @;'';'';;;;;';';;;;;;;@: .@::;:;;:;@ @:;;;;;;;;;;;;;;;;;;:;;;;;;;;;;:@ '+;;;;;;@ @;;;;;;;@ ;#;;@ @:;';;;;;;@ @:@ ;'''''''''';;
.,:;;,,..;..,,,@ @;;';;;;;;;';;;;;;;;;@; ,@:::;;:;@ @;;;;;;;:;;;;;;;;;;;;:;;;;;;;;;;@ .@;;;;;;@ +#';;;;;@ @;;;@ @:;;;;;;;;@ @:@ ;''''''';';;'
.:,,::......,,,@ @;;;;;;;;;;':....,:;## ;#,;;;:;@ @;;:;;;;:;;;;;;;;;;;;;:;;;;;;;;;#; @;;:;;++ .@;';;:'# @:;;@ @;;;;;;;;;@ @:@ ;''''''''';''
.,,:::.,....::,@ @;';;'';;;;;.......:@ @';;;;;@ @;;;;;;;:;;;;;;;;;;;;;:;;;;;;;;;'@ @;;;;;@. @;;;;:#: `@:;;@ @;;;;;;;;;@ @:@ ;'''''';'';''
....::......::.@ @;'';''';';:..`....@, :#@'` `@:::;;@ @;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;@ ++;;;;@ @;;;;;@ '+;;;@ @;;;;;;;;:@ @:@ ''''''';'''''
````.....,.,:,,@ @,;';;';'';:..`....@ `@#';+@' @':;;;@ @;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;:@` ,@;;;;@ ++;;;;@ @;:;;@ @;;;;;;;;:@ @;@@@@@@@@@ @@@@@@@@';''''';'''''
.```.,..,,,,:,;@ @..,;';'''',..`...#; @;;;;;;@: .@:::;@ @;;;;:;;;;;;;;:;';;:;;;;;;;;;;;;;#' @:;:'+ `@;;;'# @;;;;@ @;;;;;;;;:@ @;;;;;;;;:@ @;;;;;;;;''''''''''';
..`..::,:,,,';+@ @....:';;''..``...@ @+:;;;;;;@ @:;;:@ @;;;;;;;;;;;;;;;;;'::;::;;:;;;;;;;@ @;;:@, @:;;#: .@;;;;@ @:;;;;;;;:@ @;;;;;;;;;@ @;';;''';''''''''''''
,,,,:::'+;::+#+@ @`....:''';..``..:@ @,,,,:;;;@: +';;;@ @:;;;;;;;;;;;;;';''::;:;:::;;;;;;;@ #';;@ @;:;@ ++:;;;@ @;;;;;;:::@ @;;;;;;;;;@ @;';;'';;;'''''''''''
;::;;'++++++#++@ @``....:'';..``..+: ;#,.,,.,:;'# ,#;;;@ @::';;;;;;;;;;;':'';::;;;;::::;;;;@. :#::@ '#;:@ @;;;;;@ @:;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;'''''''''''
######+++'++#++@ @```.`..:';..``..@` @,......,;;@ @;;;@ @;;;;;:;;;;;;;';:'';;;';;;;;;;;;;;+' @;'# `@;;@ @;;;;;@ @:;;;;;;;:@ @;;;;;;;;;@ @;;;;;;';;;''''''''';
'''+#+++++##+#+@ @```..`..;;..``..@ @`.......::@ @;;;@ @:;;;;;;;;;;;;';;';;;;';;;;;;;;:;;;@ @;#, @;#; ,#:;;;;@ @;;;;;;;;:@ @;;;;;;;;;@ @;;;;;;';;;''''''''''
'';'+#####+++++@ @.```.``..:..`.`.@ @.......,.,@ @:;;@ @;;';;;;;;;';;';;'';;'';;;;;';:;::;@ @'@ @;@ #';;;;;@ @;;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;;';';;'''''
''';;'+###+#++;@ @..```.`.....`.`.@ @.....,..,:@ @;;;@ @;;;'';;;;;;;:.:;';';'';;;;';:;;:;;@, :#@ '+@ @;;;;;;@ @;;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;;;;;;;'''''
''''';;'++#+++,@ @...``..`....`.`.@ @...,,,,;;;@ @;;;@ @;';;';;;:...,;::';'''';;;'';:;;:;;'+ `@# : `@@ @;;;:;;@ @:;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;;;;;'';''''
'''''''''++++';@ @....``..`...`.`.@ @.,,,.,,.,;@ @;;;@ @''';';;:.``.,;;,;;;;;;;;'';;:;:;;::@ @: # @; :#;;;;;;@ @:;;;:;;;:@ @;;;;;;;;;@ @;;;;;;;;;;;;''''''''
'''''''''+++'''@ @,....``.`...`.`.@ @,,......,.@ @;;;@ @;';:;;;.``...:,,;;;;;';''';;;;:;;:;@ @ ,@ @` @';;;;;;@ @:;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;;;;''';;'';
''''''''''++'';@ @::...``.`...`.`.@ @........,,@ @;;;@ @:;:,:';:::..,..`.:;;;;'''';;;:;;;;:@, ; #@ ' @::;;;;;@ @:;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;;;;''';;;;;
+++''''''+#+'',@ @.;;...`.....`...@ @........,.@ @;;'@ @:,,,:;;;':.:..`.`.;;;'''';;';;;;'';+# ` @#: ` `@:;::;;;@ @;;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;;;;';;;;;;'
+++++'''''#+'',@ @.`;;,.`..`......@ @..........@ @;;;@ @::,..,;;';';..`...;;'''';;';;;;;;';;@ @'# ;#:;;;;;:@ @:;;;;;;;:@ @;;;;;;;;;@ @;;;;;;;;;'''';;;;;''
'''+++''''#+'+,@ @...,:...........@ @..........@ @;;;@ @,;,..,;;'''+:,::::';'''';';;;;;:;;;'@ ,@:@ @;;;;;;;:@ @:;:;;;;;;@ @;;;;;;;;;@ @;;;;;;;;''''';';;;''
+';''+++''#+'+,@ @...``..........,@. @:,.,,..,,:@ ,#;;;@ @:,..:;;;'';+;;';;;;;'';;;';;';;;;;;;#: ++;@ @;;;::;;;@ @:;;;;;;;;# @;;;;;;;;;@ @;'';;;;'''''';';;'';
++''''++++##'+;@ @`....`...,..,..,+' :#,,,..,,,+; #+;;;@ @,,.`.;;;'';';;;;;;;;;;;;'';;'';;;;'''# @;;#: `@;;:;;;;;@ @;;;;;;;;'+ @;;;;;;;;;@ @;';;;;;''''''''''';;
++++''''++##+'+@ @``....`..,,.,,,:,@ @,..,,,,,@` @;;;;@ @,.,::';;;'''';'';';;;;;;;'';;;;';;'';@ @;;'# '+;;;;;;;;@ @;;;;;;;;#' @;;;;;;;;;@ @;;;;;;''''''''';;;';
''#++''''+#++''@ @.``...``.,,..:...@ +#,,,,,.'# .@;;;;@ @;.,;';;;;';;;:;;;';;;;;;;'';';;;;;;''@` .@;;;@ @:;;;;;;;;@` @';;;''''@` @;;;;;;;''@ @;;';;';''';''''';';,
+'+++++';'##++'@ @@@@@@@@@@@@@@@##.++ @+,...'@` #+;;;;@ @@@@@@@@@@@@@@@@;:';;;;;;'';;';;;;;;';#; '+;;;@ @;;;:;;;;;#, .@';;;;'@' @;;;;;;;;'@ @;'';;'''''''';''':,,
+'''++++''+#++'@ @::@ #@@@@#` `@';;;;@ @:;;;;;;;;'';;';;;;;;'';@ @;;;;#: .@;;;;;;;;;++ .@@@@@@, @;;;;;;;;;@ @;'';;''''''''''';,;:
#++''++++'+##;,@ @;:++ @+'';;;@ @;;;;;;;;;';;;;;;;;;;;';@ @;;;;;@ ++;;;;;;;;;;@ :#;;;;;;'';@ @;''';'''''''''''''::
+##++++'+'++;,.@ @:,,@. ;@;';;;;@ @;;;;;;;;;';';;;';;;;;';@` `@;;;;;@ @;;;;;;;;;;;@ @';;;;;;;;;@ @'';';'''''';'''''';;
+++####+''+':,.@ @,:.,@ `@';'';;;@ @'';;;;;;';'';;;;';;;;;;#' '#;;;;;@ @;;;;;;;;;';++ `@+;;;;;;;;;@ @'';;''''''''''''''';
'++++++##+++:.,@ @::,.'@ @+';'';;;@ @;;';;;;;;;;;;:;;;:;;;;;;@ @';;;;;#; :#;;;;;;;;;;;;@. @+'+;;;''';;@ @'';;''';'''';'''''';
+++++++###+++;,@ @,:,,;+@ `@+'''';;;;@ @;';;;;;';';;;;;;;::;;;;:@ @;;;;;;'@ #';;;;;;;;;;;;'@` +@;;'';;;;';;@ @;'';''';;'''''''''';
+++++++++++###'@ @.;,:',;@` .@+';;';;;;;@ @''';;'';;;;;;;;;;;;;;;;;@. `@;;;;:;;@ @;;;;;;;;;;;;;;+@` +@;;;;';''';;;@ @;'';''';;'''';';''';
+''''++++++###+@ @::.,::.:@' +@''''''';;;;@ @;;;;'';;;;;;;;;;;;;;;;;:+' ;#;;;;;;;@` @;;;;;;;;;;;;;;;'@; @#;;;;;'':;;'''@ @:'';'';;;''''';;''';
''+'''''+++##'+@ @;:,,::,;;#@: ;@#''''''''''';@ @:;;;;;;;;;';;;;;;;;;;;;:;@ @';;;;;;;#; ;#;;;;;;;;;;;;;;;;;@@: `+@+,;;;:;;'';';';@ @;;;;;';;;;'''';;;'';
+''''''++++##'+# `@:;::':;;;;;#@#, ,#@@''''''''''''';@` #;:;;;;;;;;;;;;;;;;;;;;;;;@ `@;;;;;;;;'# @';;;;;;';;;;;;;;';''@@#:` `'@@#;;,;;;::;:'+''''@` `@;;;;;;';;'';''';;'';
'''''''+#+++#'+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:;;;',;:;;:;,'#@@@@@@@@@@#:,;'''''''''''''''@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:;;;:;;;;;;;;;;;;;;;;;;;;+@@@@@@@@@@@+;;;;;;;;;#@@@@@@@@@@#;;;;;;';;'';;;;;;';';;'#@@@@@@@@@@@@#+':';:::;:,:';+'';;'@@@@@@@@@@@@;;;;;;;';;'';;;';;;;;
'''''''+#++++'#+''+++#+''+,...```....,..:'''''';';;;:,:'':;,;:,..........,;''''''''''''''':,.::;;::;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;;;;;;;;'''++++'';:;';;:;;;''';;;;';''';:;;::;;::;''+;;;;;;;;;;;;;;;;;;;;;;;;;;';;;';;;;;;
'''''''++++++'#++'++#++''.....``......`.:';;'+';;::';::+''':,,,..```.......:;'''''''';'';,..,:,:;,:.:;;;;;;;';;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;'';''';;';;;;;;;;;;;;;;;;;;;;;;;;;;;;+';;#;:''#':;;:;;:;+;''''''';';;':';::;;:::;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;';;;;
''''''++#++#+'#++'''+++:.....`......``..;,`.,;+';::+',,'++;......``````.....:''''''''''';,,;:.:.,.,:,,;;;;;'';;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;'';;;'';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;++''+;+#';+;::''::::;'''''''';;';':';::;;;::;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
''''''++#++#+'#++'''+'.............``...``..`,+''''+',';'',:::,,.............:'''''';;;';;;;.,:.,,.;:,,;;;;';;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;';;'';;;;;;:;;;;;;;;:;;;;;;;;;;;;';#++'+;;#+;:;''''';;;''''''''';';;';';;,;;;,::;;'';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;