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