Handling zero case for move(Left|Right)N'.
MY BRAIN HURTS

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