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

wiki | looking glass