The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.

If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.

Difference between revisions of "Lazyness"

From A Tale in the Desert
Jump to navigationJump to search
(Replacing page with 'Image:carp.JPG')
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Image:carp.JPG]]
+
<pre>
 +
// Onion Growing macro made by Oni - changed by lazybum
 +
// Works only with Aqueduct window pinned up in TOP RIGHT!
 +
// Pin plant window in TOP LEFT!
 +
// see image for mouse start location.
 +
 
 +
constants
 +
Batch = 0
 +
StartX = 0
 +
StartY = 0
 +
NewX = 0
 +
NewY = 0
 +
Job = 0
 +
MDelay = 100
 +
SDelay = 200
 +
End
 +
 
 +
SetConst StartX = {MouseX}
 +
SetConst StartY = {MouseY}
 +
TimeStamp $StartX, $StartY
 +
 
 +
Form Veggie, Settings
 +
ed1=Editbox:Batch:1
 +
ed2=ComboBox:Project:Onions
 +
End
 +
 
 +
FormLoad Veggie, Veggie.frm
 +
 
 +
if ShowForm Veggie
 +
set Batch = Veggie[ed1]
 +
case
 +
When Veggie[ed2] = Onions
 +
set Job = Onions
 +
End
 +
else
 +
Stop
 +
End
 +
 
 +
FormSave Veggie, Veggie.frm
 +
 
 +
Loop $Batch
 +
Call $Job
 +
End
 +
 
 +
Procedure Onions
 +
MousePos 40, 10
 +
leftclick
 +
delay 1000
 +
MousePos 86, 160 // close plant window
 +
delay 50
 +
rightclick
 +
delay 50
 +
/// Plant 8 onions ///
 +
// (1) //
 +
MousePos 52, 43 // plant click
 +
delay 300
 +
rightclick
 +
delay 1077
 +
MousePos 45, 84 // NW
 +
delay 300
 +
rightclick
 +
delay 300
 +
MousePos 31, 162 // click "build"
 +
delay 300
 +
rightclick
 +
Delay 75
 +
// (2) //
 +
MousePos 52, 43 // plant click
 +
Delay 75
 +
rightclick
 +
delay 1077
 +
MousePos 59, 78 // N //
 +
Delay 75
 +
rightclick
 +
delay 50
 +
MousePos 31, 162 // click "build"
 +
delay 50
 +
rightclick
 +
Delay 75
 +
// (3) //
 +
MousePos 52, 43 // plant click
 +
Delay 75
 +
rightclick
 +
delay 1077
 +
MousePos 74, 84 // NE //
 +
Delay 75
 +
rightclick
 +
delay 50
 +
MousePos 31, 162 // click "build"
 +
delay 50
 +
rightclick
 +
Delay 75
 +
// (4) //
 +
// MousePos 52, 43 // plant click
 +
// Delay 75
 +
// rightclick
 +
delay 1077
 +
//// MousePos 82, 100 // E //
 +
// Delay 75
 +
// rightclick
 +
// delay 50
 +
// MousePos 31, 162 // click "build"
 +
// delay 50
 +
// rightclick
 +
// Delay 75
 +
// (5) //
 +
MousePos 52, 43 // plant click
 +
Delay 75
 +
rightclick
 +
delay 1077
 +
MousePos 73, 115 // SE //
 +
Delay 75
 +
rightclick
 +
delay 50
 +
MousePos 31, 162 // click "build"
 +
delay 50
 +
rightclick
 +
Delay 75
 +
// (6) //
 +
MousePos 52, 43 // plant click
 +
Delay 75
 +
rightclick
 +
delay 1077
 +
// MousePos 59, 123 // S //
 +
// Delay 75
 +
// rightclick
 +
// delay 50
 +
// MousePos 31, 162 // click "build"
 +
// delay 50
 +
// rightclick
 +
// Delay 75
 +
// (7) //
 +
// MousePos 52, 43 // plant click
 +
// Delay 75
 +
// rightclick
 +
// delay 1077
 +
// MousePos 44, 114 // SW //
 +
// Delay 75
 +
// rightclick
 +
// delay 50
 +
// MousePos 31, 162 // click "build"
 +
// delay 50
 +
// rightclick
 +
// Delay 75
 +
// (8) //
 +
// MousePos 52, 43 // plant click
 +
// Delay 75
 +
// rightclick
 +
// delay 1077
 +
// MousePos 35, 101 // W //
 +
// Delay 75
 +
// rightclick
 +
// delay 50
 +
// MousePos 31, 162 // click "build"
 +
// delay 50
 +
// rightclick
 +
// Delay 75
 +
///// END PLANT ////
 +
 
 +
 +
 
 +
 +
 
 +
/////WATER////////
 +
/////Set1/////
 +
MousePos 496, 384
 +
keys w
 +
delay 75
 +
MousePos 515, 383
 +
keys w
 +
delay 75
 +
MousePos 535, 382
 +
keys w
 +
delay 75
 +
MousePos 537, 404
 +
keys w
 +
delay 75
 +
MousePos 536, 427
 +
keys w
 +
delay 75
 +
MousePos 515, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 408
 +
keys w
 +
delay 75
 +
 
 +
 
 +
////////Fill Jugs///////
 +
MousePos 782, 49
 +
 
 +
 
 +
delay 50
 +
leftclick
 +
delay 50
 +
MousePos 789, 123
 +
delay 50
 +
leftclick
 +
delay 50
 +
//// LOOP 1
 +
delay 19000
 +
MousePos 496, 384
 +
keys w
 +
delay 75
 +
MousePos 515, 383
 +
keys w
 +
delay 75
 +
MousePos 535, 382
 +
keys w
 +
delay 75
 +
MousePos 537, 404
 +
keys w
 +
delay 75
 +
MousePos 536, 427
 +
keys w
 +
delay 75
 +
MousePos 515, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 408
 +
keys w
 +
delay 75
 +
 
 +
////////Fill Jugs///////
 +
MousePos 782, 49
 +
 
 +
 
 +
delay 50
 +
leftclick
 +
delay 50
 +
MousePos 789, 123
 +
delay 50
 +
leftclick
 +
delay 50
 +
/////Set2/////
 +
delay 19000
 +
MousePos 496, 384
 +
keys w
 +
delay 75
 +
MousePos 515, 383
 +
keys w
 +
delay 75
 +
MousePos 535, 382
 +
keys w
 +
delay 75
 +
MousePos 537, 404
 +
keys w
 +
delay 75
 +
MousePos 536, 427
 +
keys w
 +
delay 75
 +
MousePos 515, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 408
 +
keys w
 +
delay 75
 +
 
 +
////////Fill Jugs///////
 +
MousePos 782, 49
 +
 
 +
 
 +
delay 50
 +
leftclick
 +
delay 50
 +
MousePos 789, 123
 +
delay 50
 +
leftclick
 +
delay 50
 +
/////Set3/////
 +
delay 19000
 +
 
 +
MousePos 496, 384
 +
keys w
 +
delay 75
 +
MousePos 515, 383
 +
keys w
 +
delay 75
 +
MousePos 535, 382
 +
keys w
 +
delay 75
 +
MousePos 537, 404
 +
keys w
 +
delay 75
 +
MousePos 536, 427
 +
keys w
 +
delay 75
 +
MousePos 515, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 428
 +
keys w
 +
delay 75
 +
MousePos 495, 408
 +
keys w
 +
delay 75
 +
 
 +
////////Fill Jugs///////
 +
MousePos 782, 49
 +
 
 +
 
 +
delay 50
 +
leftclick
 +
delay 50
 +
MousePos 789, 123
 +
delay 50
 +
leftclick
 +
delay 50
 +
/////Set4/////
 +
delay 19000
 +
MousePos 496, 384
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 515, 383
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 535, 382
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 537, 404
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 536, 427
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 515, 428
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 495, 428
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 495, 408
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
 
 +
////// Harvest////////
 +
delay 19000
 +
MousePos 496, 384
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 515, 383
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 535, 382
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 537, 404
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 536, 427
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 515, 428
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 495, 428
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
MousePos 495, 408
 +
keys h
 +
delay 20
 +
keys w
 +
delay 75
 +
 
 +
////////close pin///////
 +
 
 +
 
 +
delay 6001
 +
 +
End
 +
</pre>
 +
<pre style="font: 4px/2px monospace;">###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@#####++++''''''''''''''''''''''''''''''''++####@@@@@@@@@@@@@#################################################################################################################################################################
 +
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@########++++''''''''''''''''''''''++++#######@@@@@@@@@@@@@#################################################################################################################################################################
 +
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########+++++++++##########@@@#@@@@@@@@@@@@@@@@@#################################################################################################################################################################
 +
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################################################################################################################################################################
 +
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#@@@@@@@#@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@###@#@@@###@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@##@@@@@##@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@################################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@#''+###@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@##@@@@@@@@@################################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@+;;;;;;;'++##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##++'';'#@@@@@@@@@###############################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@+'';;::::::::;;''++#######@@@@@@@@######++''';;::::;;;;#@#@@@@@@@###############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@#@@+'';;;::::::::::,,,::::::::;;;;;;;:::::::,,:::::::;;;;;#@@@@@@@@@###############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;:::::::::::::::::,,,,,,,,,,,,,::::::::::::::;;;;;#@@@@@@@@@###############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;::::::::::::::::::::::::::::::::::::::::::::;;;;;#@@@#@@@@@###############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+''';;;::::::::::::::::::,,,,,,,::::::::::::::::::;;;';#@@#@@@@@@@##############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+''';;::::::::::::::::::,,,,,,,,:::::::::::::::::::;;;;+@@#@@@@@@###############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;''';::,,:::::::::,,,,,,,,,:,,::::::::,:::;;;;;;;;#@@@@@@@@@###############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+;''########+;:,,::::,,,,,,,,,,,,,:::::::::'+#######';;#@@@@@@@@@###############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@#@+;+##+'''''+#@#+:,,::,,,,,,,,,,,,,:,,:,:;+##+'''''+@@+;#@#@@@@@@@@##############################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@#+@#'++++''';'+@@+:,,,,,,,,,,,,,,,,,:,;##+';'''++''+#@+#@@@@#@@@@@##############################################################################################################################################################
 +
###############################################################################################################################################################################################################################+##@@@@@@@@@@@@#@@@##'++++++++'';;+@@':,,,,,.,,,,,,,,:;##+;;''''+++++'+@@@@@#@@@@@#@##############################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#++++++##@@@@@#+'+@#;,,,.....,,,,:+#+;'+#######++++'+#@#@@@@@@@@@##############################################################################################################################################################
 +
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@##@####@#;+@@++#'#+;#@+,......,,,;##;;##+@@#@+'#@##+###@@@@@@@@@@@##############################################################################################################################################################
 +
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@++@@@@#: `#@@+#@..'#:;:,,......,;#':'@;.'@'+@#.`:#@#@@+#@@#@@@@@@@##############################################################################################################################################################
 +
##############################################################################################################################################################################################################################+#+@@@@@@@@@@@@@@@@+'#@@#,  .#@@@@@, `'#,,,,.....,,,::'#, `#@#@@@:  `+@@#'#@@@@@@@@@@##############################################################################################################################################################
 +
##############################################################################################################################################################################################################################+##@@@@@@@@@@@@@@@@+'++#@'.  ;@@@@'`  '',,.......,::;#,  '@@@@@.  .+#+';+@@@@@@@@@@##############################################################################################################################################################
 +
######################################++++++++++++++++########################################+#######################################++++++++################################################################################+##@@@@@@@@@@@@@@@#+''''+@#'.`:++;``,;'##:,.......,,:+#';, .'@##, .'@#';';+@@@@@@@@@@##+########################################+###############################+##################################################################################
 +
######################################++++++++++++++++########################################++######################################++++++++##############################################################++##########++####+##@@@@@@@@@@@@@@@#'''''';+##+;;:;;##+':+;.......,,,:#'+##+;::;:;+##';;;;;+@@@@@@@@@@##+########################################+###############################++##########################################++#####################################
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@#''';;;;;;;'+###+';::,::........,,:'::::'+#++##';::;;;;;'@@@@@@@@@@@#+#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
######++##############################++++++##++++++##################+++#++######++##########++++++##++##++##++################++++##++##++##################################################################++##++++++##++#####@@@@@@@@@@@@@@@#'';;;:::::::::::::::,,,,.......,::::::,,,::::::::::::;;'#@@@@@@@@@@##########++##++##############################################++##########++######################++##++##############++################+++++#++#############
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###@@@@@@@@@@@@@@@#'';;:::::::::,,,,,,,,,,,.......,:::::,,,,,,,,,:::::::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@#'';;:::,,,,,,,,,,,,,,,,,.......,,:::,,,,,,,,,,,,,,,::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@+'';;:::,,,,,,,,,,,,,,,,,.......,,:::,,,,,,,,,,,,,,,:::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@+'';;::,,,,,,,,,,,,,,,,,,.......,::::,,,,,,,,,,,,,,,:::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,:::,,,,,,,,,,,,,,,,::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,::,,,,,,,....,,,,,,::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,::,,,,,,......,,,,:::;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,,,,,,,,,......,,,,,::;;#@#@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@#'';::,,,,,,,..,,,,,,,,,,,......,,,,,,,,,,.......,,,,::;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@#'';;:,,,,,,....,,,,,,,,,,......,,,,,,,,,,.......,,,::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@#'';;:,,,,,,,..,,,,,,,,,,,,.....,,,,,,,,,,......,,,,::;;'@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@#'';;::,,,,,,..,,,,,,,:,,,,,,,,,,,,,,,,,,,.....,,,,,::;;'@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,::,,,,,,,,,,,,::,,,,,,....,,,,:::;;+@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@+'';;:,,,,,,,,,,,,,,;;:::::::::::,:;,,,,,,,,,,,,,,::;;;#@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@+'';;::,,,,,,,,,,,,,;';;;;;;;;;;:::;,,,,,,,,,,,,,:::;;;#@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@#''';::,,,,,,,,,,,,,:++#+'''';;+';;:,,,,,,,,,,,,::::;;'@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@#@@@@@@@@@@@#@@+'';;::,,,,,,,,,,,,,;''++''''++'';,,,,,,,,,,,,,:::;;;+@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@#'';;:::,,,,,,,,,,,,,::;'+++''::::,:,,,,,,,,,:,:::;;;#@#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@#@@@@@@@@@@@@@''';;::::,,,,,,,,,,:,::::;:::::,,:,,,,,,,,,,::::;;;+@@#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@#'';;::::,,,,,,,,,,::::::::::::::::,,,,,,,,::::;;:;#@#@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@+;';;:::,,,,,::::::::::::::::::::::::,,,::::::;:;+@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@#''';;::::,:::::::::;;;;;::;;;;:;::::::::::::;;;'@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@#@#@@#@#'';;;::::::::::::'###+';'###+';;;;:::::::::;;'@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@@@@@@@#;;';:::::::;+''##@@@#####@@###++'::::::::;:;#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@+';;;::::::;+#@@@@@@@@#@@#@@@@##';::::::;;:#@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@+;;;:::::::;'+###++#@@#++####+;;::::::;::+@@@#@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@';;;:::::::;;;;;::;'';::;;';;::::::::::'@@#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@#';::::::,:;';;;;;;;;;;;''''':::::::::'@@@#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;:::::,:,:+''''''''''''''';::::::::'@@@@@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::,:;+++'++++''''++;::::::::'@@@@@@#@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::,:::;'+++++'++++';::::::::'@@@#@@@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'::::::::::;;''''''';:::::::::+@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@';:::::::::::::::::::::::::,:+@@#@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;::::::::::,,,,:::::::::::+@@#@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:;;:::::::,,,,,,,,,:::::::'@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::::::,,,,,,,,,::,:::;'@@@@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:::::::::::,,,,,,,,,,:::;;;'@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:::::::::::::,,,,,,::::;;;:+@@@@#@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+::::::::::::::::::::;;;;;;:+@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+:::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@#@@@@#@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@@#@#@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@#@@@@@@@@#@@@@@@@@@@@@@@@@@@@#@#::::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@@#@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@+:::::::::::::::::::::;;;;;;:'@@@@@@@@@@@@@#@##@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@'::::::::::::::::::::::::;;;:'@@@@@@@@@@@@@####@#@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::::::::::::::::::::::::;@@@@@@@@@@@@@####@#@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#'::::::::::::::::::::::::::::::+@@@@@@@@@@@###@###@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:;;::::::::::::::::::::::::::;:+@@@@@@@@@@@###@####@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@#@@@@@#@@@@@@@@@@@@@@@@@@@@';;;;;;:::::::::::::::::::::::;:;@@@@@@@@@@@@#####@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';'++##@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@#';;;;;;;;:::::::::::::::::::::;::+@@#@@@@@@#######@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;:;;;'#@@@@#@@@@#@@@@@@@@@@@@@@@@@#@#+;;;;;;;;;;;::::::::::::::::;;;;;#@@@@@@@########@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;;;;;;:;'#@@#@@@@@@@@@@@@@@@@@@@@@@@##@#+';;;;;;;;;;;::;;;;;;::;;;;;;;:;#@@@@@@#########@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;;;;;;;;;::;+@@@@@@@@@@@@@@@@@@@@@@@@#####@@+';;;;;;;;;;;;;;;;;;;;;;;;;;;;#@@@@@@@#########@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++####+';::;;;;;:;:;;::;;;;#@@@@@@@@@@@@@@@@@@@@@@@@####@@@@#+';;;;;;;;;;;;;;;;;;;;;''#@@@@@@@@@#########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';::,...:;;;;;:;;:;::::::;:#@@#@@@@@@@@@@@@@@@@@@@#####@@@@@@@@##+'';;;;;;;;;;;''++#@@@@#@@@@@@@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###+';:,..........:;;;;;;;::::::::::;;#@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@#####+######@@@@@@@@@@@@@@@@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###'';:,........`......:;;;;;;::::::::::::::+@@#@@@@@@@@@@@@@@@@@@@####@@#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@#@@@#@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''';;;;;
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###++';:,....................:;;;;;;:::::::::::::::'@@#@@@@@@@@@@@@@@@@@@@@#######@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@#@@@@########@@@@@@@##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;::,,..,,,,,,,,,,,,,,
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+++';::,,.....................```,;;;;;;::::::::::::::::'@@@@@@@@@@@###@@@@@@@@@###@###@@@@@@@@@@@@@@@@@@@@@##@@@#@@#@##@@@#@@@#######@@@@@@@@@+'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,.```````.,,,,,,,,,,,,..
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#++';::,,,.......................`````.:;;;;;:::::::::::::::::;#@@@@@@@@@@##@@@@@@@@@@###@##+#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#'#@@@@@########@@@@@#@@@+;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,.``..`.......,,,,,,,........
 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,....,,,,,,...............`.....```````,;;;;;::::::,,,,,:::::::;#@@@@@@@@@###@#@@@@@@@#########@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#;#@@@@@########@@@@@@#@@#::;;;;''''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';,.``..........,,,,,,,,,,,,.........
 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#++';,....,,,,,...........................````````.;;;;;:::::,,,,,,,,:::::::+@@@@@@@@@##@@@@@@@@@@@##@######@@@@@@@@@@@@@@@@@@@@@#@##@@#@@'+@@@#@@########@@@@@@@@#:;;:::;;;;;;;;''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+';:,......`..,,,,,,,,,,,,,,,...............
 +
;'''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,........,,,,,,,......................````````````.,;:;::::::,,,,,,,,,,::::::'@@@@@@@@@##@#@@@@@@@@##@###+####@@@@@@@@@@@@@@@@@@@@#@#####@@+#@@@@@########@@@@@@@@@#:::;;::::;;;:::;:::;'+#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,........,....,,,,,,,,,,,....................
 +
.....,..,,,:::;;;;'''''+##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,,`````.,,,,,,,.............................````````..`..,:;;;;::::,,,,,,,,,,,::::::;@@@#@@@@@#@##@@@@@@@@@@########@@@@@@@@@@@@@@@@@#@@#######@#@##@@@@#########@@@@@@@@@#:::::;:,,:::::::::::,,,;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,..........,,,,,,,,,...............................
 +
,,,,,,......................,,,,::::;;;;''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';,,.````........,,,,,,,...............`....``````````............,;;;;::::,,,,,,,,,,,,,::::::#@##@@@#@#@##@@@@@@@@@#######@#@@@#@@@#+#@@@@@@#+@@#######+@@@@@@@#@#########@@@@@@@@#:::::::::::;:::::::::::,,,:'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,,...............,,,,,,,,,................................
 +
,,,,,,.,...,....................................,,,,,::::;;;''++++++######++++++++++++++++++++++++++++++++++++++++++++++++++';:,.`````````..,,,,,,,.......................```````````.````..,,,,,,,,,:;;;;:::,,,,,,,,,,,,,,,:::::'@@@@@@#@#@##@@@@@@@@@#@####@#######@@#+#@@##@@#+#@###@###'#@#@@@@@##########@@@@@@@@#::::::::;;;:;;::,,,,,:::,,,,,;+#+++++++++++++++++++++++++++++++++++++++++++++++++++#++';::,..,,,,,,,,,,...................................................
 +
,,,,,,,,,..,,,............................................,,.,.....,,,,,,::::::;;;;;;'''''++++#++##++#++++++++++++++++';:..````````........,,,,,,,.........................................,,,,,,,,,,:;;;::::,,,,,,,,,,,,,,,:::::;@@@@@@@@###@@@@@@@@@@@#+##@###@#@+#@@#'#@@##@@#'#@@##@###'+@@@@@@@##########@@@@@@@@#:::::::::;::::,,,,,,,,:::::::,,:'+#++++++++++++++++++++++++++++++++++++++++++++';:,..........,,,,,,.......................................................
 +
,,,,,,,,,,,,,,,,,......,,,,,...............................,,....,,,..,,,,,,,,,,,,,,.,,,::,,,,,,,::::;;''''+++++';:,.`````````````..,,,,,,,.................................,...,,,,,,,,,,,,,,,,,,,,,;;;;:::,,,,,,,,,,,,,,,,,::::;#@@@@@@@###@@@@@@@@@@@+:+@@#+####'#@@#'#@@##@@@+#@@#++@#@''#@@@@@@###@######@@@@@@@@#::::::::::::,,,,,,,,,,,,::,::::,,,:'++#++++++++++++++++++++++++++++++'';;::,,.........,,..................................................................
 +
,,,,,,,,,,..,,,.........,...................................,,...,,,,,.,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,........`..```..........,,,,,,,...................................,,,,,,:,,,,,,,,,,,.....,;;;;:::,,,,,,,,,,,,,,,,,,:::;'@@@@@@@@###@@@@@@@@@@;,+@#@###@#;#@@#'#@@##@##++@@@+;##@+:+@#@@@@##########@@@@@@@@+::::::::::;;::::::::::,,,,,.,,,,,,,...,;;;''+++++###++''''';;;;::,.........,,.,,,..................```....................................................
 +
..,,,,.,,...,........................................,.......,,,,.,,,,,,,,,,,,,,,,.,,,,,.............,,,,,,,,,,,,,,.,,,.,,,,,,,,,,,,...............................................,,,,,,,,,,,,.....,;;;;:::,,,,,,,,,,,,,,,,,,:::;;#@@@@@@@@##@@@@@@@@@#::#@@@#@#@+;#@@#'@@@##@+#++@@@#;####:;@@@@@@@#########@@@@@@@@+::::::::::;;;;::;:::::,.,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........................................................................
 +
,..,,,,,,.............................................,.,.....,,,.,,,,,,,..,,,,,...,.....................,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................................,;;;;:::,,,,,,,,,,,,,,,,,,::::;+@@@@@@@@@#@@@@@@@@@+,'@#@#+#@@+:#@@+;#@@#+#+++;#@@#:'@#@;,#@@#@@@########@@@@@@@@@+:::::::::::,..........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,.......................`...................................................
 +
,,.,,,,..,,...,................................................,,..,,..,,,.,,.,,,,,...................................,,,,,,,,,,...,...............................................``...............:;;;;:::,,,,,,,,,,,,,,,,,,,::::;###@@@@@@@@@@@@@@@@':+@@#+;#@@;,#@@':#@@#+#'+':#@@#::@@@+,'@@#@###@##@###@@@@@@@@@':::::::::::.``````````..............................................................................``....................................................
 +
................................................................,..,,,,,,,,,.....,.....................................,,,,,,,,,.......................................................`............:;;;;:::,,,,,,,,,,,,,,,,,,,::::;'@@#@@#@@#@@@@@@@@#;'#@@#';#@@:,#@@',#@@#'+##+.'@@@;.#@@#:;#@@@@@@@####@@@@@@@@@@@'::::::::::::.`````..................................................................................`.....................................................
 +
...........................,,...,................................,,,,,,,..,,.......................................,,...,,,,,,,,,,..................................................................:;;;;:::,,,,,,,,,,,,,,,,,,,:::::;#@@#@@@@@@@@@@@@@#;+@@@#;'#@#,,#@@;,#@@+;##@+.;@@@;.+@@@':+@@@@##@###@@@@@@@@@@@@;::::::::::::.............................................................................................................................`...........,,...
 +
.........................................,........................,...,...,,...................................................,,,..................................................................:;;;;::::,,,,,,,,,,,,,,,,,,,,:::;'#@#@@@@@@@@@@@@@+'#@@@+''@@#.,@@#,.#@@+;#@@#.,@@@'.'@@@+:+@@@@@#####@@@@@@@@@@@@;::::::::::::,.................................................................................................................................,,,,,,,,,,,,
 +
.......................................,,,,,.......................................................................................,................................................................:;;;;::::,,,,,,,,,,,,,,,,,,,,:::;;+@@@@@@@@@@@@@@#''#@@@+'+@@+`:@@@,.#@@+:#@##..#@@+.;@@@#;'@@@@@###@@@@@@@@@@@@@#::::::::::::::.........................................................................................``.................................,,,,,::::::::::::
 +
....................................................................................................................................................................................................:;;;;::::::,,,,,,,,,,,,,,,,,,:::::'@@@@@@@@@@@@@@#'+@@@@+'#@@+.;@@@,,#@@+:#@#@,`+@##,:#@@@''@@@@@###@@@@@@@@@@@@@#::::::::::::,:,...................................................................................```````.............................,,,,,,,,::;;;;;;;;;;;
 +
....................................................................................................................................................................................................:;;;;:::::::,,,,,,,,,,,,,,,,,,::::'@@@@@@@@@@@@@@#;+@@@#++#@@',+@##,,#@@+;+@@@;`'@#@;:#@@@+'@@@@@###@@@@@@@@@@@@@+::::::::::::::,...........................................................................````````````````.........................,,,,,,,,,,,:::::::;::;;:
 +
......................................................................................................................................,.............................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,::::;@@@@@@@@@@#@@@+'#@@@#++@@@',+@@#::#@@#;#@@@'.'@#@':+@@@#'@@@@@###@@@@@@@@@@@@@'::::::::::::,:,...........................................................................```````````````.........................,,,,,,,,,,,,,,,,,,,,,,,,,
 +
.........................................................................................................................................,,,,,......................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,,:::;@@@@@@@@@@@@@@+'@@@##++@@@':+@@@;;@@@#'##@@+,'@@@#:'#@@#'@@@@@@##@@@@@@@@@@@@@;::::::::::::,:,...................................................................................................,,,,,..,,,,,,,,,,,,,..,,,,,,,............
 +
.........................................................................................................................................,,,,,......................................................,;;;;;:::::,,,,,,,,,,,,,,,,,,,,,::;#@@@@@@@#@@@@@++#@@@#+#@@#;;#@@@''@@@#'+@@@#:;#@@#;;#@@@+#@@@@@##@@@@@@@@@@@@#:::::::::::::,,,..............................``.....``....`.........................................,,,,,,,,,......,,,......,,,,,,,,,,,,,,,,,,,...,...,,,,.
 +
...................................................................................................................................................,................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,,,:::@@@@@@@@@@@@@@+#@@##++#@@#;;#@@#;'@@@#++##@#;:#@@@':+@@@##@@@@@#@@@@@@@@@@@@@#:::::::::::::,,,...............................`.....`.................................,.,,,,,,,,,,,,,,,:,,,,,,,,,.........,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
..................................................................................................................................................,...............................``````````````.....:;;;;::::::,,,,,,,,,,,,,,,,,,,,,::#@@@@@@@@@@@@@+#@@##++#@@#;'#@@#;'@@@#++#@@#;:#@@@':+@@@##@@@@@@@@@@@@@@@@@@@':::::::::::::,,,......................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,..,,.,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
......................................................................................................................................................,,..........................```````````....,,,,:;;;;::::::,,,,,,,,,,,,,,,,,,,,,::#@@@@@@@@@@@@@#@@@@###@#@#''@@@#;'##@#++#@@#;:+@@@+;+@#@@@@@@@@@@@@@@@@@@@@@@;:::::::::::::,:,...........................,...,,,,,,,,,,,,,,,,,,,,,,,,..,,...,,.,,....,,,,,,...,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
........................................................................................................................................................,.....................................,,,,,,,:;;;;::::::,,,,,,,,,,,,,,,,,,,,::,+@@@@@@@@@@@@@#@@@@###@@@#'+@@@#;'@@##++++##':+@@@#''#@@@@@@@@@@@@@@@@@@#@@@+:::::::::::::,,:,................................,................,,,,,,,.,,....,,,,,,,,,,..,,,..,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
.........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::,,,,,,,,,,,,,,,,,,,,,::,'@@#@@@@@@@@@@@@@@@##@@@@#+#@@@#''##+####+++';'@@@#''#@@@@@@@@@@@@@@@@@@#@@@;:;::::::::::::,,,.................,,,,...,........................,,.,,,,........,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
..........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::,,,,,,,,,,,,,,,,,,,,::::;#@@@@@@@@@@@@@@@@@@@@@@@#+#@@#@######++#++++++@@@@++#@@@@@@@@@@@@@@@@@@@@@+:;;::::::::::::,,,.................................................,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
...........................................................................................................................................................,,,...,,,.,,,..,,,,.,,,,......,,,,,..,,,,,,;;;;;::::,,,,,,,,,,..,,,,,,,,:::::+@@@#@@@@@@@@@@@@@@@@@@@###@@@#######+#+++++++#@@@#+#@@@@@@@@@@@@@@@@@#@@#;::;::::::::::::,,,..................................,,,,,,,,,,,,,,,,,......,,,.,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
.............................................................................................................................................................,.......,.....,.,,,,,,,......,,,,,,,,,,,,:;;;;;:::,,,,,,,,,,....,,,,,,:::::;@@@#@@@@@@@#@@@@@@@@@@###@@@@######+++++++++++#@#####@@@@@@@@@@@@#@@@@@#;:::;::::::::::,:,:,......................................,,,.,,...................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
..............................................................................................................................................................................,,,,.,,,,,..,,,.,,,,,,,,,;;;;;:::,,,,,,,,.......,,,,:::::::'@@@@@@@@@#@#@@@@@@@@@@@#@@@@#######++#+++++++#@@###@@#@@@#@@@@@@@@@@@#;:::::::::::::::::,,,............................................................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
..........................................................................................................................................................................,,...,,,..,,,,,,,,..,,,.,,,.,;'';;:::,,,,,,,.........,,,::::::::;'####+;;'@@@@@@@@@@@@@@@@@@#######+++++#++++#@@@####@@#@@@@@@@@@@@+;;,,::::::::::::::::,:..........,.................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
..........................................................................................................................................................,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..:';;;:::,,,,,,,.........,,,:::::::;;:,,.`` .:+@@@##@@@@@@@@@@@##+##++++++##++++++@@@###@@#''######';;'',,,,:::::::::::::::,,,............................,,,,,,,..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.,,,
 +
..........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;';';;:::,,,,,..........,,,::::;::;'':.` ``.::'#@@@@@@@@@@@@@@#+++#+++++#+:.;++++#@@####+';;;+':,,.` `.:,,,,::::::::::::::,,,........................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,..,..,,.,,,....................,,,,,,,,,,,...................
 +
............................................................................................................................................,,,,......,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;#'';;:::,,,,,...........,,::::::::'+':````.;:;;'#@@@@@@@#@@@@#+++++++++++.`:++++#@@@#+';;;;;+#':,.``  .,,,,:::::::::::::::,,.....................,,,,,,::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,.,..................................,......,,...................
 +
...........................................................................................................................................,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;@';;;;::,,,,,...........,,::::;;::'''+,```.:::;:;'#@@@@@@@@@@#+++++++++#+':'++++#@@#';;;;;;:'#+;:.``` `,,,,,:::::::::::::,,,.,,,,,,,,,,,,,,,,,:,,:::::,::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,..................................,......,,...,...............
 +
.................................................................................................................................,....,,,.,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'@+;;;;::,,,,,...........,,:::::::;'''';:,..::::::::;'##@@@@@@#++++++++#+++#+++++#+;;;;;;;:::'#;:;,.  `.,.,,,,::::::::::::::::::::::::::::;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,.............................,,,.....,,,,,,,,,,,,,,,,,,,,..,,,,
 +
.....................................................................................................................................,,..,,.......,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@#';;;:::,,,............,,,::::::;'''';;';,:::::::::::;;'+######+++#++++++++++++;:;;;;;::::,'+;;:::```.....,,,::::::::::::,:;;;;;;;::;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,...........................,,,,....,,,,,,,,,,,,,,,.,,,.....,,,
 +
.....................................................................................................................................,,...,......,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@#';;;:::,,,,...........,,,:::::::'''';;;';:,:::::::::::::::::+#+#++#+++++++++#';;;:::::::,,'+;;:::,,......,,,::::::::::::::;;;:::::::::::::::::::::::::,,,,,::::::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,.....,,,,,,,,,...,,...........,.
 +
...................................................................................................................................,,,,,...,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@+;;;:::,,,.............,,::::;::'''';''';,:,,,,,,,::::::::,,;##+#+###++#++++#;::::::::,,,,;';;:::,:;......,,,:::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,...................................,,,,.,,,,,,,,,,,.........,,
 +
...................................................................................................................................,,.,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@#;;;;::,,,.............,,:::::::''''';'';,,,,,,,,,,,,,,,,,,,,+#++##++##++++#+::::::,,,,,,.:';;::::;:.......,,::::::::::::::::::::::::::::::::::::::::,,:::::,,,:,:::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,,....,,,,,,,,,,....,,........,,,
 +
...................................................................................................................................,,.,....,,,.,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@';;;::,,,.............,,,::::::;''''++':,,,,,,,,,,,,,,,,,,,,,+#+++##++++##+:,:::,,,,,,,,.,;;;;::;;:........,,::::::::::::::::::::::::::::::::,:::::,,,::::,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,...................................,,,,.,,,,,,,,,..........,,,
 +
..............................................................................................................................,....,,,,....,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,#@@@+;;;::,,,.............,,,,::::,,:;;';;,,,,,,,,,,,............:+#+#+#+##+#+:,,:,,,,,,,,....,;';;;;:..........,,::::::::::::::::::::,:::::::::,,::::::,,:::::,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,,...,,,,,,,,,,,,,,,..,,,.,,..,,,
 +
.............................................................................................................................,,..,,,,,......,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@#';;:::,,..............,,,:::;:::,,,,,,,,,,,,,,...............,'########':,,:,,,,,,,,.......,::,,...........,,:::::::::::::::::,::,:::::::::,,::::,,,,:::::::::::::::,:::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,.............,.....,,,,,..,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 +
.........................................................................................................................,,..,...,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@';;;::,,..............,,,:::::,,,,,,,,,,,,,,...................,'++++;:,,,,,,,,,,,,,........`...............,,:::::::::::::::::::::::::,::::,,::,,:,:::::::::::::::,,::::::::,,,,,,,,,,,,,..,,...,,..,,..............................................................
 +
..........................................,.............................................................................,,,.............,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,#@@@@+;;:::,,,..............,,:::::,::,,,,,,,,,,.....`..`.............,,,,,,,,,,,,,,,,,,,.........................,::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,,::::,,,,,,,,,.....................................................................``...
 +
...........................................................................................................,..,,,.,,,...,,,,,.,,.,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@+;;;::,,,..............,,:::::,,,,,,,,,,...,,,:;:;;;,,.``..........,,,,,,,,,,,,,,,,............``............,,:::::;:::::::::::::::::::::::::,:::::::::::::::::::::::,::::::,,::,,,,,,,,,,,.........................................................................
 +
........................................................................................,..,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@#;;;:::,,...............,,:::::,:,,,,,,,:;+###@@##@@#++::,.......,,,,,,,,,,,,,,,,............```.`.`..........,,:;:;;;::::::::::::::::::::::::::::::,,:::::::::::::::::,:::::::,:,::::,,,,,,,,,,,,...................,,...,,,,,,,,,,,,,::::::::::::::;;;::;;;:::;;;''
 +
,,.............................................,,......................................,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@';;:::,,...............,,:::::,,,,,,:'##@#@###'++##+##+++':......,,,,,,,,,,,,,,,.........`.`````..```.,,,;;;;::::;;;;:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::,::::,,,,::,,,,,,,,..........,,,,,,,,,,,,,,:::::::,,:::::;;;;;;;;;;;'''';''''''+++++
 +
,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.....,,,....,,,,,,,,,,......,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@+;;:::,,,..............,,:::::,,,:'#@@####@#++++#@#'+#+;+#+;,.....,,,,,,,,,,,,,,.........``.``..```.;'+++####+'''+;;;:::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::,,::,,,:::::::::,,,,,,,,,,,,,,,,,,,:::::::::::::,:::::::::::::::::::::::::::::;;;::
 +
..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,..,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@#;;;::,,,...............,:::;:,:'#@@@@######++++###+'+#';;;;';:,..,,,,,,,,,,,,,,,.........``..```.;#@#++@##+++'+#+'';:::::::::::::::::::::::::::::::::::::::,::::::::::::,,:::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@#';;::,,,...............,,::::;+#@@#@##+'++++#++#+##''##+#''';;:,...,,,,,,,,,,,,,........`.``.`.:+#@#####++++'''+''';:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::,,:::::::,,::,,,::::::::::::::::::::::::::::::::::::;:
 +
......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,+@@@@@@';;:::,,...............,,::::'@#@####+#++++';;+++'+'++#';;;;:;;::,,,,,,,,,,,:,,,........``.``.'@@##@###+#+'''''+''+;:::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::,,,::
 +
.......,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,:,,;@@@@@@+;;::,,,,.............,,,::::;###@###+++''';;';;+':;;;;++'+'++;::,,,,,,,,,::::,,,.......``.`.+########+'+'''''+'''''::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,
 +
.....,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,;@@@@@@#;;;::,,,.............,,,::::;#####+++''''''';;;';;:;:,;''';;;;';;::,,,,,,::::,,,.........`.+@######+'''';;'''';;''';:::::::::::::::::::::::::::::::::::::::::,,:::::::::::::,::::::::::,::::::::,,:::,,:::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,
 +
,,,,,,,..,,.......,.,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,:::,,:@@@@@@#;;;::,,,,............,,,:::::####+'''';';::,:;;:,;;,,::,;''';;;;;:::,,,,::::::,,,.......`.+@@#@++'+++'''';;;;;;;;;';:::::::::::::::::::::::::::::::::::::::::,,::::::::,:::::::,:::::::,,,:::::::::::::::::::::::::::::,:::::::::::::,,,::::::::::::,,::::,,,,,,,:
 +
,,,,,,,,,,,...............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,:,:#@@@@@@';;::,,,,............,,,:::::+@####';'';;:::;::;:,:,,,.:;::::';:;;:::,::::::::,,,,.......'@@###+##+';;;;;::::::::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::,,:::::::::::::::::::::::::::::::::::::,:,,,::,,:::::::::::::,,:::::::,,,,:
 +
::::,:,,,,,...,...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::+@@@@@@';;::,,,,............,,,:::::'###++''+';';;:';;:,,,..,.,,.:;;';;;:::::::::::::,,,,......;@#######+''';;::::,,,,:::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::,,::::::::::::::::::,::::::,,,,,:::::::::::,,,,::::::::,,,,,,,,
 +
:::::::::::,,,,,,,,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,::::'@@@@#@+;;::,,,,............,,,:::::;###+';'';;;;:;;:;::,.,....,,,.,;;:;'';;:::::::::,,,,,....:#@@@#@#++''';,.,,,,..,,:::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::,,,,:::,,:::::::::::::::,,,,,,:::,,,,,,,:::,:::::::,,::,:::::::,,,,,,,,
 +
;;;;;::::;::::::::::::,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,,:;@@@@@@#;;::,,,,,...........,,,:::::;###''';;;';;:;;;::,,.....``.,,,,::::'':::::::::::,,,,..,:@@#@@##++';;:,,,..,....,,,:::;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,:::::::::::::,,,:,,,:::,,,,,,,:::,:::::::::::::::::::,,,,,,,,
 +
';;;;;''''';;;';;;;';;;;;;;;::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::,,,,,:::::::::,,::@@@@@@#;;;::,,,,...........,,,,:::::+#+''';;'':,;;;;::,,,.`.....``..::;;;;;;:::::::::,,,,,,;#@@@###+++;;::,..``.```....::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,:::::::::::::::::::,::::::::::::::::::::::,:::::::::::::::,,,,
 +
';;'''++++++++++++++++'+++++';'';;;;;;;:;;;;:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,::,,::::,::::::::::::::,:::::+@#@@@#;;:::,,,,,..........,,,,:::::'+#+''';'';;;:;::,,,.`...`..`` .,,:;;:';;;::;:::,,,,,:;+@@@@##+'+';:,..``````````.,,,::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
''''''''++++++++++++++++'++''''''';;';;;;;;;::::::::,,:::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::::::::::::::::::::,:::,:'@@#@@@';:::,,,,,..........,,,,:::::++'+';''';;;;::::::,,......````...,,;;';;;;::::,,,,:;'++##@###+'';;::,.`````````.,,,::;';::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
'''''';''';'''''''''''';;;;;;;;'';;;;;;;;;;;;;;;:::::::;:::::::::::::::::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,::::::::,::::,,:::::::::::::::#@#@@@';;::,,,,,..........,,,,:::::+#+;'';';;::;;:::::,,,......`````.,,:;'';'';;::::;;;'+####@#++'';;::,....```````..,::::;'::::::::::::::::::::::::::::::::::::::::,::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;::::::::::::::
 +
''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,:::::::::::::::::::::::::::::,'@@@@@+;:::,,,,,,.........,,,,:::::'#++''+'';:;;::::::,,,,``...``````,,:::;;';;;;;;;'''''+''+++''';:::,,..`````````..,:::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:::
 +
;;;;;;;;;;;;;;;;;;;;;;;;''';;;';;;;;;;;;;;;;'''''''''''';;;;;;'';;;;;';;;;;;;::::::::,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,::::::::,::::::::::::::::::::::::::::+@@@@+;:::,,,,,,.........,,,,:::::'+''';;;';;;:::::::,,,.....`..` ```.,:;;;;''';;;;;;'''+'+''+'';:::,,,..``.``````.,::::::':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::,,,::::::::::::::::
 +
;;;;;;;;;;;;;;;;;;;;;;;'''';;;;;;;;;;;;''''''''''''++'''''''''''''''''';;;''';:;;;;::::::::::,,,,,,,,,,,:,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,.,,,,,,,.,,,,,,,,:,,::::::,,,:,,::::::::::::::::::::::::+@@@#;::::,,,,,.........,,,,:::::;++'''''';;;:::::,,,,..`......`````..,:;;;+';'';;;''''''';''';;:::,,..`````````,,:::::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:;;;;;;;;;;;;;;:;;;;;;;;;;:;;;:,,,::::,,,,,,,::,..............,.........
 +
''''''''''';;;;;;;''''''';''';;''''''''''''''''''''''''''''''''++++'+++'''''';;;;;;;;;;;;;;;;:;:::::::::::::;::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,:::,,..,,,,,,,,,,,,,::,,,,,,,::,,,,,,::::,,::::::::::::::::::;+#@#;;:::,,,,,.......,,,,,,:::::;'+'''''';;;::,,::,,,,.`.....`.`````.,::;'+;;'''';'''';'''';;;:::,,,.`````````.,,::::::;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::;::::::;;:..,,,,,,,,,.,,,,......................``.
 +
''';;'''''';;;;'';;;;;''''''';''''''''''''''''''''''''''''''''''''+'''''''''''''''''''''''''''''''';;;;;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,::::::::::,,::::::::::::::::::::;'+;;:::,,,,,......,,,,,,,:::::'+'''';''::;:,:::,,,,..``.```````` `.,:;;'';'+'+'';;;'';';;;;;:::,,.````````..,,:::;:,:;;;:::::::::::::::::::::::::::::::;;;;;::;::::;;;;;;;;;;;;;;::;;;:;;;::::::::::::::::::::,,,,,,,,,:,...,.....................................
 +
''';;'''''''''''';;;;;;'';;''''';;''';;;;;;;;;;;;';'';'''''''''''''''''''''''++''''+''+++++++++++++++''''';;';:::;;:::::::,:::,,,,,,,,,,,,,,,,,..,,,,,,,,,,,:::,,,,,,,,,:,,,,::::::::::::::::::::::::::::::::::::;;:::,,,,,.......,,,,,,:::::;''++';'';;;::::,,,,,.....`````.`````,,:;;;''+'''''';;'';;;;;;:::,,....`.,...,:;:::::,:::;;;;;:::::::::::::::::::::::::::;;;;;:;::::::::::::::::::,,,,,,,,,,,,,,,,,,................................................................
 +
'''''''''''''''''''''';;;;;;''''';;;;;;''''';;'''''''''''''''''''''''''''''''''''''''+++++++++++++''''''''''';;;;;;;;;:::::::;:,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::;;:::,,,,,........,,,,,:::::;+''''';;;;:;:::::,,,......``.``````.,,:;;'+'++'''''';;';;';;;:::,,,,...,,,,,::::;::::;:;''''';;''''''';;;;;;;;;;;;;;;;;::::::::::,,,,,,,...........................................................................................
 +
'''''''''''''''''''++';;;;;;;''';;;;;;'''''''''''''''''''''''''''''''''''''';''''''''''';''';'''''''';'''''';;;;;;;;;;;;;;;;;;;;:;;;;;:::::::::::::,,,,,,,,,,,,,,,,..,:::::;;::::::::::::::::::::::::::::::::::::;;;:::,,,,.........,,,,,::::;++'+'';;;;:;;::::,,,,,.`..`````....,,,;;;'+++#++++'';;';;';;;:::,,,,.,,,,,::;::;;::::;;'++++'''++++''+'';''''';;;;;;:;;:.,,,,,,,,.............```..````.````````````````````````...................................................
 +
''''''''''''''''++'++''''''';;';;;'''''';;'''''''''''''''''''''''''''''''''';'''''''''''''';;''';''';;'';;;'''''';'''''''''''+''''+''';;;;;;;';;:::::::::,,,,,,,,,::,,::,:;;;;::::;;::;::::::::::::::::::::::::::;;;:::,,,,.........,,,,,::::;+'++'';;;;::;::::,,,,...`...`..`...,,,:;;''+#++##+'::;';'';::::::,,,,,,,::;:;;;::::::';';;;;;;;;;;;;;;;::::::::::::,,::,...........................................................................................................
 +
''''''''''''''+'++'++'''''''';';;''''''';;'''';''''''''''''''''''''''''''''''''';;''';;''''';;'';''';;;;;;;'''''''''+++++++++++++++++''''''''++;:;;;;;;;;:,,,,,,,:'';:::::;;;;;;;;;;;;;;::::::::::::::;;;::::::::;;;:::,,,,..........,,,,::::;#++''';;:;;;;:,::,,,....````````....,::;'+'+##+'#+';;'':;';;;;;:::::,,,:::;;;;:;;:;;'';:,,,,,,,,,,,,,,,,.,,...........,...................................................................................................,........
 +
''''''''''''''''''''''''''''''''''''''''''''''';'''''''''''''''''''''''''''''''';;;'''''';;''''';;';;;;';;'''''''''''''''''+'''+++'++''++''''++;;;;;'''';::::::,::;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;::::;;:::,,,,..........,,,,::::;#+++';;;;;:;;:,::,:,...```` ````..,,,;;;''++###+##+'+;;;;';;;;:;:::::,:::;';;;;;':''''',``````````````.``..`````.......................................................................................................,...........
 +
''+++'''''''''''''''''''''''+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''';;;;;;'''''''''''''''''';;;'''';;''';''''''''''''';;''''''';;;;;;:::::;;++'';;;;;;;;;;;;;;;;;::::::::::;;;::;;;::;;:;;;::,,,,..........,,,,::::;''++';;;;:::::,:,,,,..`````````..,,,,;''''+@####+++';;';;';;;::;::::::::;;;;';;'''+'+';```````````````````````````````.................................................................................................,...........
 +
+++++'''''''''''''''''''''''+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''''''''''++'''++'+'++++'''+';;;''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:;;;;;;;::,,,,..........,,,,:::::#+++''';;:;::::,,,,,..``` `````...,:::;'++'##+#@+++''';;+';';;;;;;;:::;;;;;;'''''+++#+;`````````....``.......`.....................................................................................................................
 +
+++++''++''''''++''''''''''''''''''''''''''''''''++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++++++++++#+####++++++''''''''''''''''''''''''++';;;;;;;;;;;;;;;;;;;;:::,,,,.........,,,,,::::++++'';::;::::,,,.,,.`````````..,,::;'''+#++#@##++++++''++''';;;;;;;;;;;;''''''+++###+,............................................................................................................................................
 +
++'+++++++++++++++++++++++++'''++''''+'+++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''';;'''';';;'''';'+++'++++++++++###+##++++++++++++++++++#++++++++##+''+++'''+++++++#+';;:::,,,,...,.....,,,,,::::++++#';;;;:::::,,,,,.....`.....,,,::;''##@###@@@@###+#+###+''''';';;;;''';''++++++###;.............................................................................................................................................
 +
+'''++++++++++++++++++++++++''++'''++++++++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;'+++'+++++++++++++++++++++++++++++++##++##++##++##++++++++++++++''++;;;:::,,,,...,,....,,,,,::::+####''';;;;:;::,,,,,,......`.,,::;'+''+##@@@@@@####+###@#+''''';;;;;;''''+''+++++##+,`............................................................................................................................................
 +
+''+++++'''++++''''++'''''''''++''++''+++++'''''+++++''''''''''''''''''''++'''''''''''''''''''''''''''''''''''''''''''''';;'''''''''++++++++++++++++++++#++++##+'''++++++++#++++++++++++++#######+++#++++++';:,,,,:;;:::,,,,...,,....,,,,,::::+#@@#+''';;;;:::::,,,:,......,::,;'+######@@##@@@##@###@@@#++++''+';''''''++++######:..............................................................................................................................................
 +
++++++++''''++'++''++'''+'''++++++'''+++++'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'++++++'''++++''++++++++++++++#####+++####';++++'''';;;;;;:,,:::::::::::::::,,:,,:::::::::::::::::::,,,,.`.``,;;:::,,,,,,,,,....,,,,,::::#@##+#+#+;;;;::;;:,::::,,,.,,,,;'+#+#@@@@@##@@@@@++#@##@#@####+'++''''+++'+##++##@#;...............................................................................................................................................
 +
+++++++'++++++++++++++++++''++++++''++'+++'++##############################################################################################+###;;'';;;;::,,,,,,.``.........```.```````````````````````````````````,;;:::,,,,,,,,,.,,,,,,,,:::;+########'';;;;;::::::::,,::;;';++##@@@@@@@@@@###@@@@@@@@@@@@####+++'''+#+'###+++#;................................................................................................................................................
 +
+++++++++++++++++++++++++++++++++++++++++++++#################################################################################++++++++++'''''+':::::,,,,.......```````````````````````````````````````````````.`...;;:::,,,,,,,,,,,,,,,,,,:::;'#@####+#+';';;;::::;;::,;;';'+'+#@@##@@@@@@@@@@##@@@@@@@@@@@###@###+++++#++#####'.................................................................................................................................................
 +
++++++++++++''+++++++++++++++++++++++#+####+++++++++++++++++++++##+++##+++###+++++++++++++++++++++++'''''''''''''''''';;;;;;;;;::;;;:::;:::::::,,,,,..............................`````````...``````...`````.......;;:::,,,,,,,,,,,,,,,,,,:::;:'#@@@@@@##++++;';;;;;;;;''';'+@##@@@@@@@@@###########@@@@@@@@#@#@######+@##@###+..................................................................................................................................................
 +
++++++++++++++++++++++++++##################';'++'++''''''''';;'';;;;;;;;;;;;::::::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,..,,.........................................................................................:;:::,,,,,,,,,,,,,,,,,,:::;;;'#@@#@##@###+++''+''+;;''+#+#@@@@@@@@@##++++###++++###@@@@@@@@@@##@@@@##@#@@#+:..................................................................................................................................................
 +
##########################################@#';''';;;;::::::;::::::::,,,,,,,,,....,........```````````````````````````````````````````````..``......................................................................:;:::,,,,,,,,,,,,,,,,,,,::;;;;'#@@@@######+'++';+'''+##@#@@@@@@@@#+++++++++++++++++##@@@@##@@@@@@@@@#@###++,..................................................................................................................................................
 +
##################+##++++++++++++++++'''''''::::::::,,,,,,,,,,,,,,....................````````````````````````````````````````````````````````.....................................................................,;:::,,,,,,,,,,,,,,,,,,,::;;;;''+#@@@#@@@@#@#####+##+####@##@@#++''''''''''+++++++++++#@@@@#@@@##@@##@##++'...................................................................................................................................................
 +
'''''''''';;;;;;;;;;;;;;;;;;;;;;;;::::::,,::,,,,,,,,,,....,,...........................`......``...`.``............................................................................................................,;;::,,,,,,,,,,,,,,,,,,,:::;;;;''++#@@@##@@@#@@@#@@###@##@@@#+'''''''';;;;''''''++++++++##@@@@@@@@@@##++++:..................................................................................................................................................,
 +
,,,,,,,,,,,.........,..............................................................................................................................................................................................,;;::,,,,,,,,,,,,,,,,,,,:::;:;;;''''+##@@@@@@@@@@@@@@@@@@#+'''''';;;;;;:;;;;;;;''''+++++++####@@@@#@#++++',................................................................................................................................................,,,
 +
```````````````````````````````````````````.........................................................................................................................................................................;;::,,,,,,,,,,,,,,,,,,,:::;::;;;''''''+##@@@@@@@@@####+''''';;;;:::::::::::::;;;;'''+++++++#####@##++++'',...................................................................................................................................................
 +
````````````````````````````````````````````........................................................................................................................................................................:;::::,,,,,,,,,,,,,,,,,::::::;;;;;';''''''''++++++''''';;;;;;;:::::,,,,,,,,,,:::;;;'''++++#########++''';....................................................................................................................................................
 +
.........`..`.......................................................................................................................................................................................................:;;::::,,,,,,,,,,,,,,,,:::::::;;;;;;;;;;''';;;';;''';;;;;;::::::,,,,,,,,,,,,,,,:::;;;''+++########+++'';:....................................................................................................................................................
 +
.......................................,............................................................................................................................................................................,;;:::::,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;;;;;;;;;;;::::::,,,,,,,,......,,,,,,:::;;''++++###@#+++'';;:....................................................................................................................................................
 +
....................................................................................................................................................................................................................,;;:::::,,,,,,,,,,,,,,,,::::::::::::::::;;;;;;;;;;;;;::::::,,,,,,,,..........,,,,,:::;;''+++#####++'';;:,....................................................................................................................................................
 +
....................................................................................................................................................................................................................,;;;::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::,,,,,,,,,.............,,,,,::;;''+++#+##++'';;;:,....................................................................................................................................................
 +
.....................................................................................................................................................................................................................;;;:::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::,,,,,,,,,...............,,,,:::;''+++++##++'';;::,....................................................................................................................................................
 +
.....................................................................................................................................................................................................................:;;:::::,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::,,,,,,,,,................,,,,::;;''++++##++'';;:::,....................................................................................................................................................
 +
.....................................................................................................................................................................................................................:;;:::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,,,,,,,,..................,,,::;;''++++##++'';;:::,....................................................................................................................................................
 +
.....................................................................................................................................................................................................................,;;::::::,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,,,,,,,,...................,,::;;'++++##+''';;;:::,....................................................................................................................................................
 +
.....................................................................................................................................................................................................................,;;::::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::,:,,,,,,,,,....................,,::;''++++##+''';;::::.....................................................................................................................................................
 +
................................................................................................................,,,,.,......,.........................................................................................;;::::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::,,,,,,,,,...................,,,::;''++###++''';;:::,,....................................................................................................................................................
 +
.............................................................................................................................................................................................................,........:;;:::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::,,,,,,,,,...................,,,::;''+++##++''';;::,,.....................................................................................................................................................
 +
.......................................................................................................................................................................................................,:;''++;;;;::,,:;;;::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::::,,,,,,,,,,...................,,,::;'++++##++'';;:::,,.....................................................................................................................................................
 +
......,..,,,,,,,,,,,......,,,,,,,,,,,,..........................................................................................................................................................,,::;+###@@@##';;;;;;;:;;;;::::,,,,,,,,,,,,,,,,,:::::::::::::::::::::::,,,,,,,,,,...................,,,:;''+++##++'';;;::,,,.....................................................................................................................................................
 +
..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......................................................................................................................................................,;'++#@@@@##@@###';;;;;;;;;;;;::::,,,,,,,,,,,,,,,,,:::::::::::::::::::::::,,,,,,,,,,...................,,::;''+++##++'';;:::,,,.....................................................................................................................................................
 +
..,,.................,,,..................................................................................................................................................................,::'+##+#@@@####@###;;;;;;;;;;;;;::::,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,...................,,::;'+++##++'';;;:::,,,,....................................................................................................................................................
 +
........................................................................................................................................................................................,::'#++##'#@@#####@###;;:;:;;;::;;;:::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,.................,,,:;''+++##+''';;:::,,,,,....................................................................................................................................................
 +
.....................................,...............................................................................................................................................,:;;:;'#++#@#@@#@@#######;:::::::::;;;;::::,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,................,,,::;''+++#++'';;;:::,,,,,....................................................................................................................................................
 +
..................................,................................................................................................................................................,:;;;;;';;'+#@#@@@@@@#####+;::::::::::;;;:::,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,..............,,,,::''+++##+'';;;:::,,,,,,....................................................................................................................................................
 +
.................................................................................................................................................................................,::;';,:::::;'+###@@#@#######;:::::::::::;;:::,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,............,,,,::;''++##+''';;::::,,,,,,....................................................................................................................................................
 +
.....................................................................................................................................................................,:;;;:,,...;+;;';:,,,,,::;'###@#@@#######':::::::::::;;::::,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,,.........,,,,,::;;'+++##+'';;;:::,,,,,,,....................................................................................................................................................
 +
....................................................................................................................................................................,'''''##+';'++'';:::,..,,:;''+#@@@#@######':::,,,::::::;::::,,,,,,,,,,,,...,,,,,,:::::::::::::::::::::,,,,,,,,,,,,,,.....,,,,,::;;''++##+''';;::::,,,,,,,....................................................................................................................................................
 +
...................................................................................................................................................................,:;';;;'+####++';:::,,....,:;;;+@@@#@#+####+:::,,,,:::::::::,,,,,,,,,,,,.....,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,::;;'''++#++''';;:::,,,,,,,,....................................................................................................................................................
 +
...................................................................................................................................................................::::;::::'##+'';::::,.......:';'@@@@##+####+:::,,,,,,::::::::,,,,,,,,,,,......,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,::;;;''++##+''';;;:::,,,,,,,,....................................................................................................................................................
 +
..................................................................................................................................................................,;:,,,:,.,:'##+''';,,:,,...,.,;;+@@@@########::,,,,,,,,,,:::::,,,,,,,,..........,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,::;;;'''++#''''';;:::,,,,,,,,,....................................................................................................................................................
 +
..................................................................................................................................................................:';;;:,.,::;##+'+':,,:,,..`.,:;;+@#@@@@#++###::,,,,,,,,,,,::::,,,,,,,............,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,:::;;;''''+#+'''';;;:::,,,,,,,.,,...................................................................................................................................................
 +
..................................................................................................................................................................''+';;,..:;'+@@#;,;;:,,,..`..,;:;@@@@@##+####;,,,,,,,,,,,,,:::,,,,,,..............,,,,,::::::::::::::::::::::::,,,,,,,,,,::::;;'''''+#+''''';;:::,,,,,,,.,,....................................................................................................................................................
 +
..................................................................................................................................................................+++';:..,,:;'+##':;':,,,..,,:,;;'@@@@@##++###',:,,,,,,,,,,,,:::,,,,................,,,,::::::::::::::::::::::::::::,,,:::::;;;'''''+#+''''';;;:::,,,,,,,.,,,...................................................................................................................................................
 +
.................................................................................................................................................................,@@#';:,..,:;;+##+;;;:,,,,.,:::;'+@#@@##@++###',:,,,,,,,,,,,,,::,,,,.................,,,,:::::::::::::::::::::::::::::::::;;;;''''''#+'''''';;;::,,,,,..,.,,,...................................................................................................................................................
 +
.................................................................................................................................................................;@@@#;;:. ,;''+##+'';::,.,....,:;'@@@@###++###+::,,,,,,,,,,,,,,:,,,,..................,,,,::::::::::::::::::::::::::::::;;;;'''''''#+''''''';;:::,,,,,...,,,,...................................................................................................................................................
 +
..............................................................................................................................................................,:;###@#;;,.`,:;;+@#';';;:,.,..`..,::#@@#@###+###+:,,,,,,,,,,,,,,,,,,,,,.................,,,,,:::::::::::::::::::::::::;;;;;;''''''''#+''''''';;;:::,,,,,..,,,,,...................................................................................................................................................
 +
............................................................................................................................................................,:;'++;'+++;...,..:'##+'''';:,,......:;+@@@@###++###;,,,,,..,,.,,,,.,,,,,,..................,,,,::::::::::::::::::;;;;;;;;;;;'''''''''++'''''''';;;::,,,,,,..,,,,,...................................................................................................................................................
 +
...........................................................................................................................................................,:;;;':,,:;+;.`..,,:'####'''',::..,.,:;;+@@@@###+++##':,,,,...........,,,,,...................,,,,::::::::::::::;;;;;;;;;;;;;'''''++'++'''''''';;;;:::,,,,,..,,,,,,...................................................................................................................................................
 +
...........................................................................................................................................................:;;;;;.,..;'',.`.::;;+#@#'''',::,,..,::;+@@@@@###++##+::,,,,...........,,,,,..................,,,,,:::::;;;:::::;;;;;;;;;;;''''''++'++;;''''';;;;;;:::,,,,...,,,,,,...................................................................................................................................................
 +
..........................................................................................................................................................,'+:,+;,;,.;+':....:;:+@@#+#+';:::.`..,:;'@@######'####::,,,,.............,,,...................,,,,,::::;;;;:::;;;;;;;;'''''''''++'+#;,;;'''';;;;;:::,,,,,...,,,,,:...................................................................................................................................................
 +
..........................................................................................................................................................,+#+::;;:...,;,...`,::++##+'+'::,,,,,::'+#@#@#####+####;::,,,..............,,,..................,,,,,:::::;;;;:::;;;;;''''''''''+''++;,:;;''';;;;;;:::,,,,,....,,,::...................................................................................................................................................
 +
.........................................................................................................................................................,;#@@+.;;,```,;,`....,;;;#@#'++';::::,:;;'+@@@#@########'::,,,...............,,...................,,,,,:::::;;;;;;:;;;'''''''''''''+':,,::''';;;;;;:::,,,,,....,,,,::...................................................................................................................................................
 +
.......................................................................................................................................................,:''+@@#;::;..`,;,...,.,:;;#@#+++'';::,.::;;'#@@######'####:,,,,,...............,,..................,,,,,:::::;;;;;;;;;''++++'''''''+':,:::;;;;;;;;;;:::,,,,,....,,,,::...................................................................................................................................................
 +
.....................................................................................................................................................,,,,,:'#+@+:;':..,::,..,,,,;'+#@+';'';:,,,,:''+#@@@@####+####;,,,,,................,,..................,,,,,:::::;;;;;''+++++++''''''+':,::,:;;;;;;;;;:::,,,,,,....,,,,::...................................................................................................................................................
 +
....................................................................................................................................................,:;:,,,;'+@+;';:.,:::,....,,:;'#@+';;;::,,.,:;'+#@@@####@++###'::,,,................,,,.................,,,,,,:::::;;;;'+++++++++''''+':,:,,,:;;;;;;;;;:::,,,,,,....,,,,::...................................................................................................................................................
 +
....................................................................................................................................................:;;:,,,::'@#+;:,,,.:,.....,:;;'#@#++;::;;:,:;;'++@@@@##+######+::,,,,................,,,.................,,,,,:::::;;;;;'#+++++++'''#',,:,:,,:;;;;;;;;::::,,,,,.....,,,,::...................................................................................................................................................
 +
.................................................................................................................................................,..:;::,,.:::+@+;,:;::;:,,...,:;;;+#@#++;;':,,:;;+++@@@@#####+####;::,,,.................,,,.................,,,,,::::;;;;;;'+++++++++#':,,,:,:,:;;;;;;;;:::,,,,,,.....,,,,:,...................................................................................................................................................
 +
....................................................................................................................................................:';,:,.,:::##';;;;';;,,,...,:::;'#@#+';;:,,,,:+++#@@@#####+####+::,,,,.................,,,,,,.............,,,,,::::::;;;;;+++######+:,:,,:,,,:;;;;;;;;:::,,,,,,.....,,,:::...................................................................................................................................................
 +
...................................................................................................................................................,'##'',`,,:;#@+';;;:::,,,...,,,:;;+@#+';:;:::::':'#@@@@####++####:::,,,.................,,,,,,,,............,,,,,:::::;;;;;+++##+####',,,:,,,,:;;;;;;;::::,,,,,,.....,,,:::...................................................................................................................................................
 +
....................................................................................................................................................+@@@#:,,.,;#@+;;'':::,..,.,,,::''+@@#+';;;::;;;:'+@@#@#####+####'::,,,,.................,,,,,,,,,..........,,,,,:::::;;;:'##+##+#####;,::,,,::;;;;;:::::,,,,,,,.....,,,:::...................................................................................................................................................
 +
.............................................................................................,......................................................'@#@'::,..:+#+';;';;::,.,.,.,,,;'+#@#+'';:,:::;''+@@@@#####+####+:::,,,,................,,,,,,,,,,,........,,,,,::::::;;;+##+#########:,::,,:;;;;;;:::::,,,,,,......,,,:::...................................................................................................................................................
 +
....................................................................................................................................................;@@':::,,.,+@#';''':::,....,:,.,;''##+;;;;::,.;''+#@@@@####+#####;::,,,,,...............,,,:,,,,,,,,,.......,,,,,:::::::'##+#++######@+,::,,:;;;;;::::::,,,,,,,.....,,,:::...................................................................................................................................................
 +
.................................................................................................................................................,..:@+::;::,,,;#+::'';:,,.,....::,,:;+#@#+;:'':;;;''+#@@@@####++#+##+:::,,,,.............,.,,,:::,,,,,,,,,,....,,,,,::::::;+#++++++#######',::,:;;;;;:::::,,,,,,,,.....,,,:::...................................................................................................................................................
 +
.........................................................................................................................................,...,,...,.,'::;:::.,.:##;;+';;,,:,,,..,:::;'#@@@@+:;';'';';+#@@@@@##@++#####;::,,,,,,...........,,,,,,:::::,,,,,,,,,..,,,,,::::::'#++++++++#######:,,,:;;;;;:::::,,,,,,,,.....,,,::,...................................................................................................................................................
 +
.........,...........................,..................................................................................................,,,.,,......,:;;:;::,.,;#@#+'';':::,,..,,:,:;;+####+;';:;;:;''+#@@@@####+#####+:::,,,,,,.........,,,,,,,::::::,,,,,,,,,.,,,,,:::::;##+##++++++######+,,,:;;;;;:::::,,,,,,,,....,,,,::,...................................................................................................................................................
 +
.........,,........................,,..............................................................................................................,:;;:::;:...:+@+''+::':,.....,,,:;:;'++##;::::,;;'''#@@@@#####+##+##;:::,,,,,,......,,,,,,,,,::::::::,,,,,,,,,,,,,::::;+#+++++++++++######;,,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
 +
.........,,.......................................................................................................................................,:;;;;;;;;,..,'+':'+';;:,,,..,,,,:';'+++###;:,;:;;;:+#@#@@@####+#####+::,,,,,,,,,...,,.,,,:,,,,:::::::::,,,,,,,,,,,::::'####+++++++++###@###:,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
 +
..,.............................,.........................................................................................................,,.....,:;;;;;::;;:.`,'+''#+#';,;:,,,,,;;;;;+#++++#+':;:;:;;#@@@@@@###########;:::,,,,,,,,,,,,,,,;:,,,,::::::::::,,,,,,,,,,:::;+####++++++++####@##@+,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
 +
..........................................................................................................................................,,,....:;;:;;:::;';,.:'#+##+++;,;:,,:,,;;:::'+##+''#+:,,;:;'+@#@@@@@@@#++##'##+::::,,,,,,,,,,,,:;:,,::::::;:::::::::,,,,,,::::'###+++++++++++########:,'';;;::::,,,,,,,,....,,,,:::,...................................................................................................................................................
 +
........................................................................................,,,.,,..................................................,:;::;;:;;;';,:;'+';++'';,::,.,,,,,:;:;''++''+'';,:,,;#@#@@@@@#@#++##+#+#+::::,,,,,,,,,,,::,,::::::::;;;:::::::,:,:::::'+#+#++++++++##+########',''';;::::,,,,,,,,,.,,,,,,:::,...................................................................................................................................................
 +
........................................................................................,,,,,,.....................................,,..........,:;:;;:;:;::;:..:'++;'';;;:,.,......,::;'+'+#''+#+;:;::+###@@@@@#######++@+;:::,,,,,,,,,,::,,:::::::::;;;;;::::::::::::;+#+++++++++++++######@###:''';;::::,,,,,,,,,,,,,,,,:::....................................................................................................................................................
 +
........................................................................................,......................................,..............,:;::;;:;::::;,,.,'++'+'+';;;,,,,..,,:::'+#+##''++#+;'';+##@@@@#@###+########::::,,,,,,,,:;;::::::;;;:;;;;;;;;:::::::::;'++++##++++++++##########@+''';;::::,,,,,,,,,,,,,,,,:::.................................,,.................................................................................................................
 +
...................................................................,,.........,......,,,.......................................,,.............:;::::::;:::::,:,.+#++++#':+;:,,:,.,,:;;''+##++;;'+#'';+'#@@@@@@#@#++##+#####+::::,,,,,,,,;;:::;;;;;;;;;;;;;;;;;::::::;'+'+###+##++++++##++#+#####@+'';;::::,,,,,,,,,,,,,,,::::.................................,,,........,...................................................................,...................................
 +
...................................................................,.................,,......................................,............,..::::::::::::::;;::`'@++'++;;':,,,.,,,,,::;'+'##+':;''+';''+@@@@@#@@#####+######'::::,,,,:::::::;;;;;;;;;;;;;;;;;;;;;;:;'+'+#######+++++++++++++##@#@#'';;::::,,,,,,,,,,,,,,,::::,........................................,...................................,,.....................................................................
 +
............................................................................................................................................,::::::::::;:::;;,,.;+;;;'+;;;:,,.`,,..,:,;'';+##';:;;++';+####@@@@@############+;::::,::::::::;;;;;;'';;;;;;;;;;;;;;;;''++++#####+++++++'+++#++######+';;:::::,,,,,,,,,,,,,,::::,...................................................................................................................................................
 +
...........................................................................,,.............,,.......................,,......................,::::::::::::::::;,`,;+';:'#';::::.,,,,,,::;+'++#@++;;;'+#;'+##@@@@@##############+::::::::::::;;;;;;'''';;;;;;;;;;;;;;''++++###++++##+++#+'++#+########';;;::::,,,,,,,,,,,,,,::::,...................................................................................................................................................
 +
...........................................................................,,......................................,,......................,::::::::::::::::;:,,:##';+++;:;;:,,,.,,::;'+++++##+'';:;'''+#@@@@@@##@#######@####':::::::::;;;;;;;'''''';;;;;;;;;;;;'''++++###++++++++##+++++'++######+';;::::,,,,,,,,,,,,,,::::..........................................................................,,........................................................................
 +
..........................................................................,...............................................................,::::::::::::::::;;::.:##''+++';;:,,,.,,.,;:''+';+;#+'';:,:+++#@@#@@@@@@##@@@########+;:;::::;;;;;;;';''''''';;'';;;;;;'''++#+##+++#+++'+++'++++'+++######+;;;::::,,,,,,,,,,,,:::::........................................,..................................,...................................,,...................................
 +
..........................................................................,..............................................................,::::::::::::::::::::..;##';+'+';,,,...,,,,:::;;''+'#++''';'#####@@@@@@@@@@@@###@@@@###+;:;::;;;;;;;;;;''''''';;'''';;;;'+++##+++###+++++++''''+++++++######';;::::,,,,,,,,,,,,:::::........................................,.,,..................................................................,,,...................................
 +
........................................................................................................................................,,::::::::::::::::::,:,.;##;;#'++;,::,...,::::;''+++#@##+++'++@#@@#@@@@@@@####@##@#@#####':;;;;;;;;;;;;;;;''''''''+++'''''+#++++++###++++##+'''';'++++++++###+;;::::,,,,,,,,,,,,:::::...............................,,,.........,.................................................................,,,,,..................................
 +
........................................................................................................................................,::::::::::::::::::::::,:##''#++''::,,,.,,:,:;;;+++#+#++'++'''+#@###@@@@#@###@@@@@#@@#####+;:;;;:::::::;;;;;;''''+++++++++++++++++++++++++++''+'''+++'''+++###';;::::,,,,,,,,,,::::::.,,...........................,,...,,.......................................................................,,,..,.........,........................
 +
.......................................................................,,..,,..........................................................,::::::::::::::::::::;::.:#+'''+'':::,.,,,,,,:::;++'++#+#+'+'''+@@###@@@@#@@@#@##@@#@@######+;;::::.,...::,:,,;:;'++++'++++++++####+++##++''''+#''+;'''''+++####';:::::,,,,,,,,,::::::.,.....................,,,,,,,,..............,....................................,,...............,,..............................................,
 +
.......................................................................,,...,.....................,..........,........................,,::,,:,,:::::::::::::::..:##'++#+':::,.,,,.,::.:'+++'+#@@#+'+###@##@##@@@@@##@@#@@@@@@@######';,,:....`..,..`,;,:+++#+++###+++####+++++++'''''++''';;;'''+++####+;;::::,,,,,,,,:::::::..,,...............,,,,,::::,,.,,,......,...........................................................................................................
 +
......................................................................................................................................,,:,,,,,,,,,,::::::::::...:##'+###+':,:::,.,,::,;'++#+++#@#++###@@#####@@#@@@@@@@@@####+++'';;;,,,,..```.``..`.,,,;'###+##########++++++++''+;'''';';;:;;''+++####';;::::,,,,,,,::::::,..,,,.............,:;;;;;;:,;;::,:,,.......................................,....................,...................................................
 +
.....................................................................................................,...............................,,,,,,,,,,,,,,,:::::::::.,,;#@++##+'':,:,,,,,,,:::'+##+##+#@####@@@@###@@###@@@####++''';;::':::;::,,,.`..```````.`,:'######@@#####++++++++'++;'';;;;;;;;;'''++#####';:::::,,,,,:::::;;,...,,...,........,''+;,::,,,;;;;;:::,..........,,.........................,,....................,.......................,...........................
 +
.....................................................................................................,...............................,,,,,,,,,,,,,,,,::,::::;:::;#@+####+;::,``,,.,,,::'++++#++#@####@@@@#####+#@###+++'''''';;;;;;;::;;:::,,..```````...,,;#####@@@#####+++''+++'';;;;'';;;;;;;;'''+####+;;::::::,,:::::;;:,.....,,,,.......,'###+:,,.`.;;;';::::,,.............................................................................................................
 +
................................................................,...................................................................,,,,,,,,,,,,,,,,,,:::::::;,:'+#'+#+#';;:,..,,,,,,;;'+'+#####@@##@#@@####++++#+++'''+'''+'+''';'';;;;';;:::....``.`.,...,;##@@##@@####+++++'++';;;:;;;;;;;;;;''''++####';;::::::::::::;;:..,....,,,,......:+++++',.,..;;;;,,:::::,............................................................................................................
 +
..............,,,,.................................................................................................................,,,,,,,,,,,,,,,,,,,,::::::;,:''+'++#+::;;:,:,,::,::;+++++#@###@@@@##@####+##''';;;;+++++++#+++++''+''+'';;;;;::,.......`,;;+#@@##@@@###++++'+';;;;;;::;;;;;;;;;''+++####';;::::::::::;;;:..,.......,.,,,..,;'++'+;.,..;;;,,,:::;;:,.......................................................................,...................................
 +
..............,.........................................................................,..........................................,,,,,,,,,,,,,,,,,,,:,:::::';:'##++##+':;;,,,,.,:,:::''+++'++#+#@@@#+#@#'+###;';::;'+++##+''++++#+#++++++''''+''':,.,,,,``,,;'#@@@###@####+'''';';;;;::::;;;;;;;;''++####+;;;::::::::;;;;:............,..,..:++++';.,,.:;:.,,::;++':,,.............................,,..........................................................................
 +
..................,.....................................................................,.........................................,,,,,,,,,,,,,,,,,,,,,:::::;;;.;##++##'+;,:,,,:,.,,,,,:;+##+'##+#@@@@####+++''';::;;'##+';:::::::;;;;;;''+++++++++;';';,...,::''#@@#@#@@@###''';;';;;;;;;;;;;;;;;;'''++####+;;;:::::;:;;;;,..............,,...;'++';.,,.:;..,::;+++#+;,..........,................,,.................,,.........................................................
 +
...,,...................,.........................................................................................................,,,,,,,,,,,,,,,,,,,,,:::::::,,;'';'#+##;::,,,.,,:,,:;'++##+####@#@@#####+++'';::;;;''';:::::::::;;;:;:::;;;;++#####++';::;':,;;++@@@@#@####++''';;;;;;;;;;;;:;;;;;;'+++###+';;;::::;;;;;;,.,,,..,,,..........:+'+';.,,.;:.,:::+++##+';,........................................................................................................
 +
...,,,...................,,......................................................,,..............................................,,,,,,,,,,,,,,,,,,,,,,:::::::,;;;;'##+#+';:,,,..::,::'+#+###@#@@###@@#@##++##+;;:';;;:::::::::::::;;;;;;;;;;;;;;'##@#++'+':;:,,.:;'#@@@#@##@##+''';'';;;;;;;;;;:::;'''++####+';;;;;;;;;;;:,,.,,,,,,,,........,.''++'.,,.;..:,:+++##+++':,,....................,,...............................................................................,
 +
,.....,,,,................,.....................................,................,,,.............................................,,,,,,,,,,,,,,,,,,,,,,:::::;;'';+##@#++'+;:,,,,.,,,::;'++++#@@@@######@##+'+#';;:;::::::::::::::::;;;;;;;;;;;;;;;;;+###++;,:::,.:;:'+@@@@@@#@##+'''''';:;;;;;;:;::;''''+#####+';;;;;;;;;;,,,,,,,,.,,,........,.:''+'..,,:.,:,'++##+++''';,,,...................................................................................................,
 +
,,.........,,................,..................................,.................,,,,....,.....................................,,,,,,,,,,,,,,,,,,,,,,,,::::''++'##+++'+'',,,,.,,..,::;'''++#@@#@@@##;'+;'':;;::;::::::::::::::::::;;;;;;;;;;;;;;;;;;;'###+'+'::::.,,.+@@##@@###+++''';;:;;:;;;:;;::;'''++#####'';;;;;;;;;,,,,,.,,....,,,,..,,..,''+',.,.,,,,;+###++:;+#+;;:,,........................................................,,,,....,,,................................
 +
,,,........,,......................................................................,,......,........................,...........,,,,,,,,,,,,,,,,,,,,,,,,::::;:';'#+;'+++'';;;:::,:::::'++++++#@#@#@@#;++;;:,;;::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;'#@###''':,,,,,'#@#@#@@###++'';;';;;;;;;;;;::;;''+#####+'';;;;;;';,,,,,,,,,,,,,,,,,,,,...'+++,....,,:+###++:.;+##+;::,...,,,.....................................................,....,..................................
 +
.,...,.......................................................,.................,,...........,....................,,,,,.........,,,,,,,,,,,....,,,,,,,,,:::::;;;:;'''++#+'++';:;,,;::;:''+#####@@######+++';;;::::::::::::::::::::::::::;;;;;;;;;;;;;;';;;;'#@@#+;:,::,.`,#@@@@@####++'''';;;;;;;;;;::;;;'++#####+''';'''':,,,,:,,,,,,,,,,,,,,....;+++:.,:,,,;###++,..'+#++;::,,..,,,,,,.,,,..................................,...........,.......................................
 +
.....,,...............,......................................,.................,,......,...............,....,,..,,,,,,.........,,,,,,.........,,,,,,,,,:::::'+';;+++##++'';;:,,.,;,:;:;;''++##@#@#@###++#;;;::::::::::::::::::::::::::::;;;;;;;;;;;''';'';;;'##+';:;,.```:'@@@@@@###++'''';;';:;;;;;;:;;''+####@#+''';;::,,,,,,.,,,,.,,,,,,,,.,,.:';+::,,,::+###+,...'##++'::,,,.,,.,,........................................,..........,....,...................,,.............
 +
....................,,,....,.............................,,.................,,,...............,........,.....,,.,...,..,..,...,,,,,,,..........,,,,,,,,:::::'#+''+#''+'++',,:,,.,,:,:::';;++####@@##+;''':,::::::::::::::::::::::::::::::;;;;;;;;;;;''''''';;;###+';::.`...'@@@@@@###+++''';';;;;;;;;;;;;+++###@#++';:,,,,,:,,,,,,,,,,,,,,,,,,.,.:+:'+:,.::'####,...,+#+++:,,,,,,.,..,...........................................................................................
 +
,....,.....,,.........................................................................,......................,...,....,......,,,,,,,...........,,,,,,,,:::::+#''''+;;+''';:,.,;:,,:,:;'++###@########'';;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;''''';;';+##+'+':,,``:+@@@@@#####++'''';;;;;;;;;';;'++######++;:::::::::,,,,,,,,,,,,,,,,,,.:+;;;,,:;;####:..,.,###+',,...,;,..,............................................................................................
 +
.............................,,..............,.....,,.................................,.....................,.........,.....,,,,,..............,,,,,,,,:::::+#:;''+++#+'+:;:,::::,;:;;;+##++#@@##@''++'';:::::::::::::::::::::::::::::::::::;;;;;;;;;;;''''''';;+###'';:;,:'#@@#@@@@####+++''';;;;;;;;;:;;'++####+++';::::::::,,,,,,,,,,,,,,,,,..,+';;:::+#++#;.....;##++;,,.`.:;:...............................................................................................
 +
.....................,........,,............................................,,..............................................,,,,................,,,,,,,:::::##';+++####++;;;::::::;;;:''''+'#@#@@#''+::;;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;'''''''';;'##+'':;::;#@@###@@#####++';'';;;;;;;;;;;;'++++#++'';;:::::,,,,,,,,,,,,,,,,,,.,.,+'';;;;'''+'......'##++:,,.`:;:::..............................................................................................
 +
........................,.......,,..........................................,,...........................,.................,,,,,...............,,,,,,,:::::;@#+'##+#++#+'':,:,,:,:;;;;';''+###'###+'':::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;''''''''';+@#++';;,;+@@@###@#@####+''++''';;;:;;;;;'''+++''';;;;:;;::,,,,,,,,,,,,,,,,,,,.,'';';''''++,...,.,+###:,,.`,:::;;,.............................................................................................
 +
.......,...,............,,......,,.........................................................,...........,,,...,.............,,.,................,,,,,,,,::::;#+''+++++++'+',::,,,,,:;;';;+#########+;'';::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;''''''';+@###'';';+@@@###@@@####+++++'''';;;;;;;;''''''';'::;;;;;:,,,,,,,,,,,,,,,,,.,,.;#;''''++#,......'###+,.,`.;:;::,..............................................................................................
 +
,,,,,,.,,,,,,...........................................................,..................,,.........,,,.................,,,..................,,,,,,,:::::;##;'+'++##'++',;::,,:::;:;''++####@@##':;:::::::::::::::::::,,,,::,:::::::::::::::::;;;;;;;;;;;;''''''';+@##+''':;#@@@#@@@@@@######++''''';;;;;;'''''''';:,:;;;;:,,,,,,,,,,,,,,,,,.,,.:#'''++##:..,,..:####:,.`.;;:,.`.,,,,..........................................................................................
 +
,,,,,,..,,,,,.,,,,,...........,.........................................,..............,..............,...................,,,..................,,,,,,,:::::'@##+++####++;';:,,:::::;;''+#''+####++;::::::::::::::,,,,,,,,,,,,,,,::,::::::::::::::;;;;;;;;;;;'''''''';+@#+''''+##@##@@@@@@@########'''';;;;;;''''''''';:;;;;:,,,,,,,,,,,,,,,,,,,,,..;##'+##:.......+++#',...;:.`..,,,.,,.............................................,,.....,,,...................................
 +
.........,,,..,,,,,,........,,,.........,....................,.....,,,.................................................,..,,.,.................,,,,,,::::;:;#@#+##+##+#+:::,,,::,:::;;''+'+++##';'';:::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;;;;;;;'''''''''#@#++++###@@@@@@@@@@@#@#####++++;;;;;;;++;;'+'';;;;;;:,,,,,,,,,,,,,,,,,,,..,.,'#+##:.,...,.:#+++::,.:.``,,,.,..,,,.,.........................,....,...........,,,,.,,,,,...................................
 +
........,,,,,,,,,,,,.........,.....................................,,,...................................................,,....................,,,,,,::::;;;+#'++#++##+++:,:,.::::,,,;;'+##+###'''';:::::::::::::,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;;;;;;;'''''''''#@#+#++''+@@#@##@@#@#@######++''''''';'+''''';;:;;:;:,,,,,,,,,,,,,,,,,,.,,,..;+#+:.,.,.,..'#+#+;::.````..,....,:,...,,,.........................,...,::::,....,.,...,,....,,..............................
 +
......,,.,,,,,,,,......,,.................,,....................,,.......................................................,,...................,,,,,,::::;;;'#+'++####@###'::,,:::::::;;'##+####'+':::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;;;;;;''''''''+@##+++;:;+#@@@#@@@@@@@@#####+++''''''';'++'';;::::::,,,,,,,,,,,,,,,,,,.,,,..;++;..,,....,#+'';:,:,.``````,::,,:,..,,,,.................:::;:;::::::;';;';::,,.,,,.,,,,,,,,,,.............................
 +
....,,..,,,,,,,,,....,,,.......,,,,.....,...............................................................................,,....................,,,,,,::::;;;+@#+++##@###+''':::::::;:;;''++++#++'';::;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;'''''''+'#@@++''+';#@@###@#@@#@@@#####+++''''++''++'';;:::::,,,,,,,,,,,,,,,,,,,,,,,.,'++,,,.,.,..;#++';:,,:,.`.,;++#++';:...,,.,,...,..,,.......:;:;;''';''''''''''';;:,..,;;,.,,...,,..,,........................
 +
,,...,....,,,,,,,,...,,.......,,..,,..................,,,..............................................................,,,...................,,,,,,,::::;;;+##++#@#####+;;;,:::,,;::':+'+##+++#';;;;;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;'''''++++@@##'++''+##@@@#@#@@@##@#####++++''#++++'';;:::::,,,,,,,,,,,,,,,,,,,,,,,,.:++;,,,,,,,.,'+++'';;::,:'#########';....,,.,,,,,,,,,......,.,,,:;:,,:'';;;;'''''';;::,;;:,,.,,..,,.,,,.......................
 +
,,,.......,,,,,,,,........,,..,...........,,,....................,,,,,.......,.....,..................,,,..............,,....................,,,,,,,:::;;;;###+###@####+':,:,,:::;:;;'++++#++++'''::;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;'''''+++'#@@#++++++++##@@@@@@@@@########++''+''++'';::::::,,,,,,,,,,,,,,,,,,,,,,,.,;+',.,,,,,..,##++'''#''+###########+;...,......,,,,......,,:;,.::,,,,:';,,,,:;;;;;;;;;;;;;;,................................,,
 +
,,,.....,,.,..,,.........,,,...............,,,...................,,,,,,,,,,,,,,,,,,,,...,,............,,,.....,........,....................,,,,,,,:::::;;;+#++#+#@#@@##+;,;:,::;;;';+'++''+#+'+';;;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;;;;;;''''+++++@###++++'''++###@@@@@@#@@@@@##++++'++++';;::::,,:,,,,,,,,,,,,,,,,,,,,,,.:'+;,.,,.,,.,;##+++''##########@####+;.,.,.............,,,,,;':,,....,:';,,,.,,:;;::::;;;;'';,............,,,,...............,,
 +
,,,.,,,,,,......................,,..,,,,....,,,,...............,,,....,,,,,,,,,,,,,,,,.,,,............,,,,.........,,.,,....................,,,,,,,::::;;;'####@########;';;:,:::::;;;'++''++##+;;:;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;;;;;;;;;;''''+++++####+';'++++'@@#@#@@#@@@@@@@##+###++++'';;::::,,,,,,,,,,,,,,,,,,,,,,,,,,;++:.,,,,,,.,'##++'''''++####@@@@@#++;,,..,,,,........,,,,.,;;,.,....,'';,....,,:;;;;::::'+'';::,,,,,,,,,,,,,,...............,,
 +
,,,,,,,,,,,.......,,.....,,,,,..,,,,,,,,,....,,,...............,,.....,,,,,,,,,,,,,,,,,,,,..,,......,,,,,.........,..,,,....................,,,,,,,:::;;;;'###+@@@@####+';::.,:,:::;::'++#@##@#+':;:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;;;;;'''++++++@@#+';'#+'++##@@#@@@@@@@@@@@##++##++'';;;::::,,,,,,,,,,,,,,,,,,,,,,,,.:'+',,,,,,,..:++++'+''++##@###+'';;;;':....,,,,.............,:;:....,.:'';,,...,.,,,,:;;;;+++'''';:,,,,,,,,,,,,,..,............,
 +
,,,,,,,,,,,...,...,,.....,,........,,,,,...,,,,,...,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,..........,.,,,.,,....................,,,,,,,,:::;;;;'@#+####@@##+#+:,::,::::;';''#++@#+++';::::::::::::,,,,,,,,,,,,,,,,,,....,,,,,,,,,,,,,::::::::;;;;;;;;;;'''++++++#@#++''++'''+####@@@@@@@@@@####+#++''';;::::,,,,,,,,,,,,,,,,,,,,,,,,.,'++',..,,,.,,'+'+######+';:,,,...........,,,,.,,.,,...,:,,;':;';,..,.,;'';,,,,....,,,,:;'++++;:;'';:,,,,,,,...,,,............,..
 +
..,,,,..,,,,,,,,..,,....,,....,,......,,..,,,.....,,,,,..,,.,,...,,,,,,,,,,,,,,.,,,,,,,,.,,,,,,....,...........,,,,..,,...................,,,,,,,,::::;;;;'@######@@@@+++;,::,:::;;;;''+#+#+;;+;;;::::::::::,,,,,,,,,,,,,,,,..........,,,,,,,,,,,::::::::;;;;;;;;;''''+++++#@@##+''+''+####@#@@@@@##@@####+++''';;;:::,,,,,,,,,,,,,,,,,,,,,,,,,,;++++';,.,,,:'+'++:::;:,,.........,,.......,,.,,,,,,,..,:'+++'++':,,..,;'';,,,,...,,,,:;'++'''';:;++;:,,,,.,,...,,,,.,..,,,,,,,..
 +
,,,,,.,,,,,,,,,,,,......,,..,,,,,,.....,,,...............,..,,...,,,,,,,,,,,,,,,,.,,,,...,,,,,,,................,,,.,,,...................,,,,,,,,:::;;;;;+@#@##@@@@@@++'',,.,,,;;:::'''+++''+';;;::::::::::,,,,,,,,,,,,,,.............,,,,,,,,,,::::::::;;;;;;;;;''''++++++@@@#++++''#@@@@@#@@@@@@@@####++''';;;;;:::,,,,,,,,..,,,,,,,,,,,,,,.:+++++++;,.,:'';'++;,.....,,,,,,,...,......,,,,,,...,,,,..,'++++++'':,,,;';:,,,.,,.,,,;'++';::::;;''++'';:,,.,,..,,,..............
 +
,,,,..,,,,,,,,,,,....,,,,....,.,,,......,....................,,,.,,,,.,,,,,,,,,,,,,,,,,......,,,,...............,,..,,,..................,,,,,,,,::::;;;;;+##@#@@@@@@##+;:.,,,:::::;;;'+#''###';;:::::::::::,,,,,,,,,,,,................,,,,,,,,,,::::::::;;;;;;;;''''++++#+#@@#+++';++##@#@@#@@@@@@##+#+'';;;;;;;::::,,,,,,,...,,,,,,,,,,,,,,:'#+;'++++'::+';:;+++,..,:'+++++'';:,.,....,,...,,....,,,,..,'+''++++';;;;';,,,,..,,,:;''';:,.,,,,,,:'+++'';:,,,,...,,,............
 +
,,,,...,,,,,,,,,...,,,,,,....,......,,....,,....,.,,.,,,,.....,,,..,,.,,,,,,,,,,,,,,,,,,..,,,,,,,....,,,,.......,,.,,,,..................,,,,,,,::::;;;'''###@@@@@@@@#@+;;;:::,:::;;''++#++#++;;;:::::::::,,,,,,,,,,,,,..................,,,,,,,,,::::::::;;;;;;;;''''+++##+#@@#+''''+++###@@@@@@@#@##+++';;;;;;;:::::,,,,,,.....,,,,,,,,,,,,,'##',;++++++';:,,;+++;,;'+#+######+':....,...,,,,.........,,.,;'''+'++++'';:.,,,...,:;'';:,.,,,...,,,:'+++''':,,::,,,.,.,,.........
 +
,,..,,,,,,,,,,,,..,,,,,,,,..,,,....,,,.,,,......,,,,,,,.......,,,..,,,,,,,,,,,,,,,,,,,,,...,,...........,,.........,,....................,,,,,,,::::;;;'''#@#@@#@@@@@@#+';;:,::;:;;;++++##++';;;;:::::::::,,,,,,,,,,,,...................,,,,,,,,,,::::::::;;;;;;;;'''++#####@@#+';+'+++#@#@@#@@@@###++++;;;;;:::::::,,,,,,,......,,,,::,,,,,;##+:.,'++++++;,,,:++++;;:'#++#+++++':,.,.,..,,,.,..,.....,,,.,,:;'+++'++++':..,,,,.,;;;';,........,,,;++''+++';;;'';:,,,,,,......,,
 +
....,,,,,,,,,,,,,,,,,,.,,,,,,,,,..,,,.,,,,.......,.........,,,,,....,,,,,,,,,,,,.,,,,,,,,........,,......,,....,..,,,...................,,,,,,,,:::;;;'''+@@@@@#@@@@@@##';:,,,:;;::;'''###++';;::::::::::,,,,,,,,,,,,,....................,,,,,,,,,:::::::::;;;;;;;'''++#####@@@#+++''+@@@@#@@##@@###+++';;;;::::::::,,,,,,,......,,,,;;;;;;;+#+;,,,;++++++',.,:++++;::;+''++###+;.,.,,,,,,..,,,.,...,,.,,:'+;;';''++++++;,,,,,.,:;;;;;,.,.......,:'+;,:+++';;;''++;:.,,,,,....,,
 +
,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,.,,,,....,.......,...,,,,,..,,...,,.,,,,,,,,,,,,,,,,,,..,,...,,..,.......,,..,,.,.................,,,,,,,,::::;;;'''+@@##@@@@@@@@#+;;,,:,,::,:::'+#####+;;;:::::::::,,,,,,,,,,,......................,,,,,,,,,:::::::::;;;;;;;'''+++####@@@#+##'+##@@###@#@@@###++'';'';:::::::,,,,,,,........,,,,:;'++++++';::'+++++++'::;++++':;+########+,,,,,,,,,,,,,,,,..,.,,,.,'+++++'''+++++++':.,,,:;;;;;:,,,,,,,,,.,;+;,,,;++';;;'''''::,,..,,,.,,,
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,..,,,,,,,,,.......,,,,,,,..,,,.....,,,,,.,,,,,,,,.,,,,,,.,....,,,,,......,,.,,,.,.................,,,,,,,,::::;;;;''#@###@@@@@@@@#++:,,,:,,:'';;##+#@@#';;::::::::::,,,,,,,,,,,.......................,,,,,,,,:::::::::;;;;;;;'''+++#####@@@+##++#@@@@@@@@@#@####'''''';::::::,,,,,,,,........,,,,,,;'++++++++++''++++++'''++++'';+######+':.,.,....,,,,,,...,..,...,'++;;'+++''++++++':,.:;';;;';;;;;;;;:,.,;;,...,;+';;'''''';::,,,.,,,,,.
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,..,..,,,,,,,,......,,,,,.,,..,,,,,......,..........,,,,,,,....,..,,,,......,,.,,,,..................,,,,,,,::::;;;'''+@@@@@@@@@@@@@##+;;:,:,,;;;';'++++'';;;:::::::::,,,,,,,,,,,........................,,,,,,,,,:::::::::;;;;;;'''++######@@@+++';'#####@#@@@@@###+''''';:::::,,,,,,,,,........,,,:::;'''++++++++';'++++++''+++++######+':,..,,:,,,,,:;;;,,,....,:;;'++++;;;'+++++++++++';;'';;;;;;;;;;;;::,.,:,.,,..,;';;'+''';;;;;:,,,,,,,,
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,,,,,,,,,..,,,,,,,..................,,,,,,,....,,.,,,,,,,,.,,,,,,................,,,,,,,,::::;;;'''+@@#@@@@@@@@@##+;::,..,,::;'::''++;;;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,::::::::::;;;;;;'''++######@@##+''''#@@##@@@@@@@###+''''''::::,,,,,,,,,,......,..,:,:''+++'+++++++++++++++++''+++':::;::,,...,;;';,..,'++',,.,,..,'+++++++++''+++++++++++++'';;;;;;,,,,,,,,,,,,,,,..,,.:'''++++':::''';::,,..,
 +
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,..,,,,.,,,,,,,,,...,,,,,,,,,,,....,,,,,.........,,,,,,,.,,,,,,...............,,,,,,,,,:::;;;;'''+@##@@@@@@@@###'':,,,.,:::;;;;'++##;;;::::::::::,,,,,,,,,,........................,,,,,,,,,:::::::::::;;;;;'''++######@@###++++@@@@#@@#@@@####+'''+'':,::,,,,,,,,,,........,,,:'#+'++++++++++++++++++++''++++,.,:;;;:.,,:++++,..:++++:.,,';:,,:;'+++++++++++++++++++++++;;'';;,,,,,,.,,,,:;::,..,,:;''++++'::::'+';:::,,.
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,..,,,,............,,,.,,.,,,,,,,..............,,,,,,,,,::::;;;;'''#@##@@@@@@@@@#+++;:::,,::::;'++#++#;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,:::::::::::;;;;;'''++#######@@@##';+##@@##@@@@#@@##++''+''::::,,,,,,,,,,..,,,,.,,.:+#+'::'+++++++++++++++++++'++++:.:++++',.,'++++:..:++++:.,,;++;,.,,;++++++++++++++++++++++'''';;,,,,,,,,::;''''';;::;'''+++';,:::;'++':::,,
 +
,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,.,,,,,,,.,,,,....,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,,,,..............,,,,,,,,..............,,,,,,,,,::::;;;''''#@#@#@@#@@@@@#++;:,,:,::;:;';'++#+';;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,:::::::::::;;;;;'''++######@@@@##+'+#@@@@#@@@#@@@@#+++''''::::,,,,,,,,,,,,,,,,,,,:+++';;;'''+++++++++++++++++''+++;.:++++';,;+++++:..:++++:.,,,+++:...,;'+'''''++++++++++++'+++'';,,,,,,:;''''''++++'';;'''+++;::;;''''++';:,,
 +
,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,......,,,,,,.,,,,,,,,.............,,,,,,,,,:::::;;;'''+@@##@@@@@@@@@##+:::,..,:,:::'''+++;;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,,::::::::::;;;;;'''++######@@@@@#+###@##@##@@@@@####++''''::::,,,,,,,,,,,,,,:,,,:++++;;'++''+++++++'''''''++++'+++;,;+++++''++++++',,'++++:,,,,:++',,,,;'+';;:;'++++++++++''''+';:,,,,;'+++'''''+++++';;''++++::;+++++''++';:;
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,......,..,.,,,,,,,,,,...........,,,,,,,,,,::::;;;;'''#++@##@@@@@@@#+#+':,,,.,:,:,:'+'+++;;::::::::::::,,,,,,,,,.......................,,,,,,,,,,,:::::::::::;;;;;'''++######@@@@@##+##@#@@##@@@@@@###+++'''::::,,,,,,,,,,,,,::,:+#+++'''+#++++++'+++':,,,:;;;;'++++;,;+++++''+++++++:;+++++:.,,,,;++':.,;'+';;;;''+++++++++'''''':,,,;'+''''''''';;;'''''''++++;'++++++';;'''''
 +
,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,..,,,,.,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,.,....,,,,,,,,,,,.........,,,,,,,,,,,::::;;;''''@++#@@@@@@@#####';:,::,,::,;';+++#':;::::::::::::,,,,,,,,,,......................,,,,,,,,,,,:::::::::::;;;;;''+++#####@@#@@##+'##@##@@@@@@@@@######+''::::,,,,,,,,,,,,:::;+#+#+'''++++++++''++++';;::,,,,:'+++;,;+++++''+++++++'++++++:,,.,.,'++';;'++';'''''+++++++++'''''':,:''+;:::'''''';:,;'''''+++++++++++++'::;'+++
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,.,,,,,,,.,,,..,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,::,,,,,,,,,,.....,,,,,,,,,,,,::::;;;;'''#####@@#@@@@@@@##;,,,,,,:;;:'+''+#+':::::::::::::,,,,,,,,,,,.....................,,,,,,,,,,,::::::::::::;;;;;''++######@@@#####++#@@@@@@@@@#@@@#####++':::::,,,,,,,,,,,:;:'##+++###+++'''+++++++++++''';;;;;'++:.:'++++'+++++++++++++++;,,,,,.,+++++++++'+++++++++++++++'+++';;++;:,::;;''''';::;'''''+++++++'+++++;,:'++++
 +
,,,,,,,,,,,,,,,,,,,,..,,,,,.....,,,,,,...,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,.,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;''''#'+@@@@@@@@#@@#+';,,,..,:;;;;;++++';;::::::::::::,,,,,,,,,,,....................,,,,,,,,,,,:::::::::::::;;;;'''++######@@@@@@@@#+#@@@@@#@@@@@@@@##++++;::::::,,,,,,,,,,:;;++++#@@######;,::;;'++++++++++++'''+':.;+++++'+++++++++++++++;,.,.,,.:++++++++++++++++++++++++++++++++::,:::;;''''';::;;'';;;'++++++'+++'::'+++++
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,.,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;;'''+#'+##@@@@@@@@@@#;'':...:;::;;;;'+';::::::::::::::,,,,,,,,,,,,...................,,,,,,,,,,,:::::::::::::;;;;'''++#####@@@@@@@@@#@@@##@@#@@@@@@####++++:::::::,,,,,,,,,,:;;'+#@@####@#;,,,,,,,,,,,:;'++++'''''+':.:'++++'+++++++++++++++;.,,,,.,.;++++++'''+''++++++++++++++++++':,:::;''''''':,:;;;';::;'+++++++++;;'++++++
 +
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,,::,,,,,,,,,,,,,,,,,,,,,,,,,,:::::;;;''''+@####@@@@@@@##@#'+;:,,.,:::;'+;++';:::::::::::::::,,,,,,,,,,,..................,,,,,,,,,,,::::::::::::::;;;;''+++#####@@@@@##@##+##@#@@@#@@@@@#####++':::::::,,,,,,,,,::;''#@######':,,,,,,,,,,,,,,,;'++'';:,:;'::'+++''+++++++++++++++;...,,..,'+++'';::;';;'';;'+++++++++++';'::,::;'''''';::;'';::,:;++++++++++''+++++++
 +
,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,:::::,,,,,,,,,,,,,,,,,,,,,,,,::::;;;'''''+##@@@@@@@@@@@###'':::,,,:;;;'+'+'';:::::::::::::::,,,,,,,,,,,,................,,,,,,,,,,,:::::::::::::::;;;;''++#####@@@@@@@@@##++#@@@@@#@@@@@@@@##++'::::::::,,,,,,,:::;'+++++##+:,,,,,,,,,,,,,,,,,,,;'++';:,,;''''++''+++++++++++++++';,,..,,,''++';;::;'''';::'';;'+++++++':::,,:;''''''';::;';;:,:;;++''+++''''++++++++
 +
,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,:::::;;;'''++##+#@#@@##@@@@@#';;::,,::;;:;'';;;;:;::::::::::::::,,,,,,,,,,,,..............,,,,,,,,,,,,,:::::::::::::::;;;'''++#####@@@@@@@@@#@@####@@@@@@@@@@@##++++::::::::::,,,,::::;''+'#@+;:,,,,,,,,,,,,,,,,,,,,,,;++++;:;'++++;,:++++++++++++++++'':,,::;'''++';:;;''+'::;';::;'++++++++';::;''''''+';:;'''';;';;'+'''':::;'+++++++;
 +
,,,,,,,,,,,,,,.,,,,..,,..,,,,,,,,,,,,,,,,,.,,,,.......,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,.,.,::::::,,,,,,,,,,,,,,,,,,,,,,,::::;;;'''+'#@@@#######@@@@#+'';:`,,:,:;;;;';';:;:::::::::::::::,,,,,,,,,,,,,,..........,,,,,,,,,,,,,::::::::::::::::;;;;''++#####@@@@@@@@@@@++#@@@@@@@@@@@@####++++::::::::::::::::::;;'++++':::,,,,,,,,,,,,,,,,,,,,,,:'+++''''+++;.,+++++++++++++++++'';''''''''++';::;'';:;';:,:'+;:'+++++++''''''''''';;'''+++++++'++'';:,:'+++++++;:
 +
,,,,,,,,,,,,,,,..,,,,,...,,,,,,,,,,,,.,,,,,,........,,,,.,,,,,..,,...,,,,,,,,,,,,,,,,,,,,,..,,,,,,...,,,,.,::::::,,,,,,,,,,,,,,,,,,,,,,:::::;;''''++####+#@##@@@@@##+'';:.,,:,:+';'''#'::::::::::::::::::,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,:::::::::::::::::;;;;''++#####@@@@@@@@@@#+''#@@@@@@@@@@@####++++:::::::::::::::::::;''++';;::,,,,,,,,,,,,,,,,,,,,,,,,:::;++'+++:.,++++++++++++++++++'''''''';''+';,:;'';;;';;:;'';:;++++++++''''''''''++++'++#+++#+#+''':,;+++++++;:,
 +
,,,,,,,,,,,,,,,,,,,..,.,...,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.,,.,,,,,,,.,::::::::,,,,,,,,,,,,,,,,,,,,,::::;;;'''+++##++##@@@@@@@@@#+;:::,.,,,:'''++;+'::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::;;;''++#######@@@@@@@@####+@#@#@##@@@@@@##+++++::::::::::::;;;;;::;;''''';:,,,,,,,,,,,,,,,,,,,,,,,,,,,.,:+++++':,'++++++++++++++''++''''''''''++;;;++''''++++'''';:;'++++++'''''''''++#+''++';:;;'++'+'::;++++++';::
 +
,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,.,,,,,..,,,,,,,::::::::::::,,::,::::::::::;;;;'''+++####+++'';:....,,..,,,.,:::::::::,,,,,,,,,,,,,,,,,,,:::::;;'''++++##+#@##@@@@@@#@#+;;:,,..,:;;''++'+;:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::;;;''++####+#@@@@@@#@@@@#@@@#@#@@#@@@@@@##+###+;::::::;;;;;;;;;;;;;;''''';:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'++;:';,'++++++++++++++''+++'';''''++'+'++++''''+++++++++:,:'+++++';'''''''+#+''++':::,,::'+#+';'++++++++;:
 +
,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,,,,,,::;;;;;;;:;::;;::::,,,,,,,,,,,,,,,,:;;''+++#@@#+;:,..,,.,.,::::::::::,,,,,,,,,,,,,,,,,,,::::;;;'''+++##+##@@@@@@@#@#@#';';::,,:''''+'##+:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::;;;''++####+@@@@@@@@@@@#+##+@@###@@@##@###++###':::;;;;;;;;;;;;;;;;;'''''::,::::,,,,,,,,,,,,,,,,,,,,,,,,,;++;,,;'++++++++++++++'''''++'''+++++''''++''+++++++++++++;::'#++';;'''''''+#+'+#+';;;;;;;'++++'++++++++#';
 +
,,,,,,,,,,,,,,,,,,,,,,,,,::,.,:::::::;'''+######@@#@@@@@@@@@@@@@@####################+++###@@#@##':,,...,;::::::::::,,,,,,,,,,,,,,,,:::::;;;'''++++###+'##@@@@##@@@@+;';:;;:;'+####@#;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::;;''++####++#@@@@@#@@#@##+;:##@@@@@@@@@@#######+;::;;;;;'''''';;;;;;''''':::;;;'';;;;;;;:::::::::,,,,,,,,:'++;::+++++++++++++++'''''''++++++++''''+++++++'''';'++++++''+++';;''''+++++#+++++++'''+++++++++++++++++++
 +
,,,,,,,,,,,,,,,,,,,.,:;+++++#####@####@@@@@###@##################@@@@@@@@@@#@@@@@@@@@#@@@@##@@@@@@##;.,,:;::::::::::,,,,,,,,,,,,,,,::::::;;''''+++++#@######@@#@@###':';:,::;''+++@@#;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::;;;''+#####+++#@@@@@@#####+;;#####@@@@########++++;:;;;;''''''''';;;;;'+';:,,::;''+++''''''''''''''''';;;;;;+++++'++++++++++++++'''''''++++++++'++++++++';;;;;::;++++##++++';;'+++#''++++++++##';:;;;+#+++++'++++++++
 +
,,,,,,,,,,,,,,,,..,:'#@@@@@@@@@@@@@@#########################################@@@@@@@@@@@@#########@@+,,:;:::::::::::,,,,,,,,,,,,,,::::::;;;'''++++#####@@+#@@@@@@@#+',::,..,:''++###+;::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,:,:::::::::::::::::::::;;''++####++'+@@@@@@@@@@##++++@@#@@@#########++++#';;;;''''''''''';;;''+';::::,:::::;;''++++++++++++++++++'++++++++++'+++++++++++''''''''++++++++++++';;;;;;;:,,,:'+#+''+++''''###+''#####++#++#+';,:++++++';'+++++++
 +
,,,,,,,,,,,,,,,,.;#@@@@#++++++++#####@#@@@@@@@@@@@@@@@@@@@@@@@@@##@@##############++'';;::,,,,,:;'@#+';;;:::::::::::::::::,,,,,,:::::::;;;'''++++#@@@++@#+@@#@@@@###+:,,:,.,:;'+##@#;:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;'+++####++'#@#@@@@@@@@@@++'+##@@@@@#####+###+++#+;;;;'''''++'''';;;'++;'''''''';''''''''''+++++++++++++++++++++++++++++++++++++''''++++''++++++++++'::;''':,,,,,:'#++'''''''##+#+'+++++++#+++####+'+++++++'++++++++
 +
,,,,,,,,,,,,.,,,,'@#########++';;;;::::::::;::::;;;;::;;:;:::::::,:,,,,,,,,::,,,,.............:'##@++';;;:::::::::::::::::,,:::::::::::;;;'''++++#@@@#####@@#@@@###';;;;:,,::;:+''@#;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;''++######++##@@@@##@#@+##'';;'@@#@@##############''''''+++++++''';;'++''''''''''''''''''''''+++++++++++++++++++++++++++++++++++'''++++++''++++++++''';;'';,,,,,:;+#+#'''';'+####+++'::::'+###++++###+++++++++++++++
 +
,,,,,,,,,,:,.,:+++@#@#++++++####++'::,,..................,,,,,::;;''''''''';;:,,,,,..,....,:;'#@@#+#+;;;;:::::::::::::::::::::::::::::;;;'''++++#@@@@@@@@@@@@##@##@+;;;:,.,,::'#++#+;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;'++#####@#+#++##@@@#@@###+::+###@##++###+#######+'''++++++++###++'''''::::;;''''''''''''''''''+++++++++++++++++++++++++++++++++++'''++++++'''++++++;;'''';:,,,,:;+#+'''++'''+###+#+':,:;'+###+'''+#+##++++++++++++++
 +
,,,,,,,,,,,.....,+@##########+++++''''';;;:,,,,,,,,:::;;;''''++###@@@@@@@@@@@###++';::;;;'##@@@#+'+#;;;;:::::::::::::::::::::::::::::;;;;'''+++#@@@@##@@#@##@@@@@##+';:::,,::;'+##+':::::::::::::::::::::::::::::::,,,,,,,,,::::::::::::::::::::::::::::::;;''++#######+++'+#@@#@@@###++';#@#@#+++#########+'';''++###########+++++;;:,,.,:;''''''''''''''''''''''''''''''''';''''''+++++++++++''+++++++'''++++'::;'''''';::;++';;'+++'''+###++';;'+##+';;;:;+#+;'+++++++++++++++
 +
,,,,,,,,..`.';;:,:#@@#####@@@@@@#############++++++++++++++###############+++##########@@@@#####;'#;;;;::::::::::::::::::::::::::::::;;;'''++++#@#@@+'@+#@@#@@@@@#++';:::,.:;';'###'::::::,,::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::;;''++#########+++++#@@@#@#####+'#@@@#+++######++'';;;;''+###########++++++++';;:,,,;'''''''''''''''''''''''''''''';;''''''+'+++++++++++''+++++++''+#+;,,;++++##+'''+'::'''''+''+###+'+##+';;:,,,,,:+#+:,;'#++++++++++++
 +
,,,,,,,,.`.;+###++;+@@##########@@@#@@@@##@@@#@@##################################@@@@@#######@#'+';:;::::::::::::::::::::::::::::::;;;'''+++++@@@@@##@+#@@@@#@@#++';:::,,.:;':+++#';::::,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;'++#####@####++#''##@##@@++####@#@@+'''+++++++'';;:::;''++####+###++++++++++++++';;;'''''''''''''''''''''''''''';;'''''''+++++++++++++'''+++++++''+'::'+#+'+'++++'';:;';:;+#+'####++++':,,.,,,,,,,'#+',,;#++++++++++++
 +
,,,,,,,.`.;+##@#+#';'#########################################################################@+;';::::::::::::::::::::::::::::::::;;;;'''++++#@@@@@@@@#@##@@@@@#+#';:::,..::;;+++#;:;:::,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;''++###@@@##++++''+@#+####+++@@@@#@#+'''''+++''';;:::::;;;;'+++++##++''++++++######+;''''''''''''''''''''''''''';;;'''';;'++'''++++++++++''+++++++''''''';;';:;''';;''''::'##''####+':,.,:;;;;;:;:;'##+;::+++++++++++++
 +
,,,,,,,`,;+##@+#@@+;;;###############++''';;;;;;;;;;;;''''###############################@@@@@@';;:::::::::::::::::::::::::::::::::;;;'''+++++@@@@@@@@@@@##@#@@@@##';:,.,..,,;:;+#+;;;:::,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;'+++######@@#+++''+####+#++#####@#@#@+'+'''''''';;;:::::::::::;;';'##+++++#########@#'''''''''''''''''''''''''''''''''+'''''''''''+++++++++''++++++++++;:,,;';:;';:,:;;'''+##+''+####+;:;'+#######+###+#+';'++++++++++++
 +
,,,,,:.`:+#@@#+#@@#'';+@#@#########@##########+';;+#####+#########+#####+################+++++';;;::::::::::::::::::::::::::::::::;;;'''+++++#@@@@@@@@@@##@@#@@@@#++::,,:::,:''''##';;::::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::;;;''+####@##@@###+''+++####@+#@##@@@#@@#++''''''''';;;:::::::::::::;;;+#+++##########@@+'''''''''''''''''++'++++++++++++++++'''''''''''++++++'++''++++++'+';:,:'''';:,,:;''+#####''#####################+#+##++++++++++++++
 +
,,,,,,.`,+#@#+;;+@@+;'+@###@@################+#+++++######+##+++++++++++###+#+##++'';;;:,,:;;;;::::::::::::::::::::::::::::::::::;;;'''''++++@@@@@@@@@@####@@@@@@#'#';::,:::;+##+@#';;::::,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::;;;''+#####@##@@####'+;;''+++###@+#@@@#@@+++''''''''';;;::::::::::::::::;######@##@@##@@@+''''''''''''''''''''''+++++++++++'+++';;;;'++'''+++';'++''+++++;;'+';:;;'';,,,:'++#######''###################+##++###+++++++'''+++
 +
,,,,,,.`:###@#';'+##;;'######++++'''''';;:::::::,:'':;'';;;;'';''++++'';';;;++';;,,:,,::::;;';:;;:::::::::::::::::::::::::::::::;;;''''+++++@@@@@@@@@@@++@##@@##@@+#';;:,:,:;'+###+;;;;::::,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::;;;'++####@@###@@####+';;'''''++@#+#@@@#@#+++'''''''''';;:::::::::::::::,,'@@@@@@@@@@@@@@@'''''''''''''''+++++'''''+++++++++++++++'''++++'''++''++++'+++++''++++'''';:,,,;'#########''########################++++++++++++++;;
 +
,,,,,,,:+###@#';'+##+''#@####'''';;;;;;::,,:::,,,,;;,::;;;:::::'+++'+';;;;';'+','::::::::;;;;;;;::::::::::::::::::::::::::::::::;;;'''++++++@@@@@@@@@@@#+@##@@####+;:,:,,,.,:;:'+#';;;;:::::,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::;;''++#########@@@#+++#''+++++#++@##@@@@@#++++++'''''''';;;:::::::::::,:::::#@@@@@@@@@@@#@#''''''''+++++++++++++++++++++++++++++''+++++++++'''''++++++''++++++'''''';:,,::'##########++###################++'+##+++++++++++#':'
 +
,,,,,,,+#####@':,;#@@@##@####+'''';;';;:::,:,,,.,,';,,:::;;;:,:+';;:;';::'+''';:';;,,:::::;;;;:::::::::::::::::::::::::::::::::;;;'''++++#+#@@@@@@#######@###@@#+';;:,,,,.,,:';;+#+;;;;;::::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::;;;'++##########@@@#+'+#'##+++'#####@#@@@##++++++'''''''';;;::::::::::::::,:,'@@@@@@@@@@@@@+;''''++++++++++++++++++++++++++++''''''+++''++++++''++++++++'++':,,,,:;'';,,:;'###############################+;,,:+###+++++++++++'+
 +
,,,,,,.'@#####;,:'###########+'''';'';;::,,:,,..,:':.,,:;'':::;;:,:;''':;'''';''';;,,,,::,:;;:::::::::::::::::::::::::::::::::;;;'''++++#'+@@@@@@@##@##@#@@##@@#@#++;:::,.,::'+++#@';;;;:::::,,,,,:::::::::::::::::::::::::::::::::::::::::::::;;;''++####@#####@@##+';+++''#++;++@++##@@@#+++++++''''+'''';;:::::::::::::::,,:#@@@@@@@@@@@@;:''++++'+++++'''''++++++++++++++++++''+++';;'+++++''''''+++++''+;,,,,,,:;;:,:'###########################++####+''+##+#+#+++++++++++
 +
,,,,,,,,#@##@#';;'+##@#######+'''';'';;;:,.,,.`.,:;..,,:;;;::';;;::''''''''''''';,;,,,::,,:;;::::::::::::::::::::::::::::::::;;;''''+++##'#@@@@@@@@@@@####@#+@@###++;::::,,:;'+++#@+'';;;::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;'''++###@@####@@@##++'''';;##++##@@#@@@@@++++++++'''+++''';;::::::::::::,::::,+@@@@@@@@@@@#;;'++'''''+++''''''+++''''''''++++++++++++''';'+++++'''''++++++++';:,,,,,:;;;'+#######################++#;,:+############+++#+++++'++
 +
,,,,,,,,+@##@#+';''#@#######@#'+''';;;;;:,.,,.``.,,``.,:,..:,;;:';:;;''''''''''',`::::::,,;:::::::::::::::::::::::::::::::::;;;;'''+++##+#@@#@@@@@@@@@@@#+###@@#+++';:,,,,.:;+''+#@+''';;;::::::::::::::::::::::::::::::::::::::::::::::::::;;;;''+++###@######@@@#+'+;:::'''#@#@@#@@@@@@#++++++++'''+++''';;;:::::::::::::::::'@@@@@@@@@@@+,;+++''''''+++''''+++'''''''+++++++++++++++'';'+++++++''''++++#++'+':::;;'++#+'''+###################+''#;:;+##########++#+++++++++++
 +
,,,,,,,,+@++@##+::'+@#########+#';;;;;:;:..,:.```,,``.,,...,,:,;;;::;';'''''''+;,.,;::;;:;;::::::::::::::::::::::::::::::::;;;'''''+++#+#@@@@@@@@@@@@@@@@@@@@###+'';::.,,,`,:;;+++@+''''';;::::::::::::::::::::::::::::::::::::::::::::::::;;;'''++++#########@@@###'';:,:'+'+@##+++####+++++++++++'''+++''';;:::::::::::::::::;#@@@@@@@@@@'::;'++'''''+++'''+++++'''''''+++++''''++++++';'++++++++'''+++++++++''++++#+###++'+########################################+#+++++++++
 +
,,,,,,,,+@#'#@#',,:;+###########';;;;:::,,..,.```,.........,,,:;;;;;;;''''''+++:..,;;'';::::::::::::::::::::::::::::::::::;;;;'''++++#++@@@@@@@@@#@@@@#@@@###@###+':,,:,,,.:;;'##+##''''';;;:::::::::::::::::::::::::::::::::::::::::::::;;;;''+++++#@########@@@##+'';::,,;'+#++#+++++++++++++++++'''++'''';;::::::::::::::::::#@@@@@@@@@@';:::'+++'''+++'''+++++'''''''''''''''''''++++'''+++++++++''+++++++++'+##+#+'+##+'+#######+'+#########################+###++#####+++++
 +
,,,,,,,,+@####+'+###+#############+++'';;::,,,,....,.........,::::;;;;''''''+++;;''++;:::::::::::::::::::::::::::::::::::;;;;'''++++##+#@##@@@@@@@@####@@#########+;:::,,,.:;''##+++'''''';;;;:::::::::::::::::::::::::::::::::::::::::::;;'''+++++###########@@@@#++';::,.:;++++#++++++++++++++++++''+++''';;;:::::::::::::::::#@@@@@@@@@#++''''+++'''++++'''+++'''''''''''''''++++++++++++''++++++++'''++##++++'+++++''++;'########+'+###################+++#########+##+++++++
 +
,,,,,,,,+@@@#+#@@@@@######################+''';::::::;:::::::;;;;;;';''''''++++++++'::::::::::::::::::::::::::::::::::::;;;;'''++++##'#@###@#@@@@@#@@@@@@########+';;,,,..`.:'''++++''''''';;;:::::::::::::::::::::::::::::::::::::::::;;;;''+++++###########@@@@##++;;;,,,,:'#++#++++++++++++++++++++'+++''';;;::::::::::::::::#@@@@@@@@@#'+++++++++++++++'''+++'''''''''''+++++++++++++++++''+++++++++'+++#+++#+'++#++##';+#############################+''+++#######+##++#++++
 +
,:,,,,,,'+++##+@#+++##########################++'''''''''''''''''''''''++++++++++'::::::::::::,,::::::::::::::::::::::::;;;'''+++++#++@@@#@@@@@@@##@@@@#@@@@#@@#+':::,,,,..,'+'+###@#''''''';;;::::::::::::::::::::::::::::::::::::::::;;;''++++##########+##@@@###''';;,,,:;+#''##+++++++++++++++++++++''''';;;:::::::::::::::;@@@@@@@@@@#++++++++++++++++++++++''''''''++++++++++++++++++''++''+++++++++'++++++#+++##+++'++#+''#####################++++++++++######+#######+++
 +
::,,,,,,+#;'##+#++###############++++''+++++''+''+''''''''''''''++++'+++++++'''';::,:::::::,,,,,,,::::::::::::::::::::;;;;'''+++++#''@@@@@@@@@@@@@#@##@@@@@###+++#''':::::;:+++###@@#''''''';;;;:::::::::::::::::::::::::::::::::::::::;;'''+++###++#####++#@@@@###''':::..;;'#++###+++++++++++++++++++++'''';;;:::::::::::::::'@@@@@@@@@@#++++++++++++++++++++++'''''+'+++++++++++++++++++';+++'++++++++++++++++++++#+;::'####+'+##+++###################################+;:'#++
 +
::::,,,,+#::@#'+''+##############+'';,.,,::......:::;;''''+++++++';;'+''''++';':,,,:::,::,,,,:,,,,::::::::::::::::::::;;;''''++++++'#@##@#@@@@@@@##@##@@@@@@@#++'+';;,,,.::,;++++##@@+'''''''';;;;::::::::::::::::::::::::::::::::::::;;;'''+###+++######+#@@@@@@#@#+;,,,``,,:';'#####++++++++++++++++++++''';;;:::::::::::::::'@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++''++++++++++++++++#+++''++++++#+;,,'###########+###############################++##',,'#++
 +
:::::,,.++,:@#''+;;##############++++::..,,.....`::::;++''+++++++';'+++##++#++:,,,,,,::,,,,,,,,,,,::::::::::::::::::;;;;;'''++++#+'#@@##@##@@@@@@@#@#@@@@@@@@@##'';:;,,,.,..:'++###@@#'''''''';;;;::::::::::::::::::::::::::::::::::::;;;'+###++++######+#@@#@@@@##+':::,,,.,;';'######+++++++++++++++++++++'';;;:::::::::::;''+#@@@@@@#+''';;;;;;;::;'''''+++++++++++++++++++++++++++++++++++'''++++++#+++#+';'++++++'';;############################################;:+#+++##+#
 +
::::::,.++,:@##@#::###############+##':,,,.....`.:::;'''+++++++++++++++++++#+:,,,,,,,,,,,,,,,,,,,,:::::::::::::::::;;;;;'''++++#+::@@####@#@@#@@#@@@@#@@@@@##@##+';:::,:.,.,;'+##+#@@+;''''''';;;;;::::::::::::::::::::::::::::::::::;;;'++##++++++####++#@@@@@###+;:;;;,:.,,;';+#######++++++++++++++++++++++';;::::::::::;'''+#@@@@@#+++';::::::;:::;''''+++++++++++++++++++'''''+++++++++++''+++++'++##+##++''+#+::;+##########################+++#################+'+######+#
 +
::::::,.'+,,#@@@+::#@##############+#+;'::,,....:::;';;''++++++++++++++++##',,,,,,,,,,,,,,,,,,,,,::::::::::::::::::;;;;'''++++#;:,:@#####@@@#@@@#@@@@#@@@@@###@+++';;:,,.,,,;'+##+#@@#;;;''''';;;;;;:::::::::::::::::::::::::::::::::;;;''++''++++####++#@@@@@@##@+''':,.``,,:;;+########+++++++++++++++++++++++';;::::::::::::+##@@@#+'+++';;:::;''';'''''+++++++++++++++++++++++++++''++++++++++++++++++###+++''';::'#########+++#############+++++########################+###
 +
:::,::,,'#:,#@#@'::+@###############+#+;::,,.`,::::;''++++++++++++++++++++',,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;';''++++;,..'@#####@@@@@@@@##@@#@@##@@@@##+;;;;:..,,,,'+''##+#@#;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::;;;'+'''++++###++##@##@@@###+#';,.` `,:';;######+###+++++++++++++++++++++++++';::::::::::'+#@@#++++++++'';;'+++'++'+++++++++'''+''''++++++++++++++++++++++++++++++++###++#++';'+#+'+###+++++################++##########################+##
 +
::::::,,;#;,#@#@':;+###############+'++:::::,.:::::'''+++'+++++++++++++++;,.,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;'''++++:,.,,+@@#+@@@@@@#@@@##@@@@@@@@@@#+#+;';::..,..,;;';+#+#@#;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;'+';''++++##+++#@@@@@@###+;;';;.```,:;''######+++##+++++++++++++++++++++++++++'';;::::;'++##++++++++++++++++++'''''++''++++''''''''+++++++++++++++++++++++++++++++#+#+++##''+##''+##+''++#################++#######################++###+
 +
:::::,:,;#',#@#@':;+###########@####+##+::;';;::::''+;'''''''''+++++++++;,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;;;;'''+++':,,,,,'@@##@@@@@@@@@@@@#@@#@@@@@@##++;;:::...`,:;;'+'+#@@#;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;'';'''++++##++#@@@@@#####;:;';:.```.,:;+######++++###+++++++++++++++++++++++++++++++++'+++++++''+++++++++++'';;;;;;'+'''''''''''''''+++++++++++++++++++++++++++#+++##+++++++###++####++####################++######################+:;+##
 +
:::::,:::#',+#@@':;+###########@##@####+';;;;;:::;''+;;''''''''''''''+';,.,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;''''++',,,,,,,'@@###@@@#@@@@@@@##@@@@@@@@@#'';,,:,.....,:'++'#@@@#;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::;;;;;''+++##++#@@@@#@@@@@#;+':,.```.`.:;######++++++###++++++++++++++++++++++++++++++++++++++++'''''+++++++++''''';;'''''''''''''''''+++++++++++++++++++++++++++++++##+++++#+';+#####+++############################################+:,:;+
 +
::::::::,#+::+#@';;+#@#############@@###++'';;::;''+':;+''''''''''''+':..,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;;;;;;'''''+;,,,,,,,,'@####@####@@@@@@#@@@@@@@@@@+;++:,:.,....,:'''+##@@#;;;;:::::;;;;;;;;;:::::::::::::::::::::::::::::::::;;;''++++++##@@@@@@#@#'+'';,:`` `..,:'######++++++++#++++++++++++++++++++++++++++++++++++++++';''+++++++++++++++'''''''''''''''+++++++++++++++++++++++++++++++++++##+++++#+:,;+#++'';'###################++########################;,,,;
 +
::::::::,##;,'#@':;+###########@+++#@@@@++'';;;;'++':::+;:;'''''''''':.,.,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;;''''+;,.,,,,,,,#@#@@@@####@@@@###@@@@@@@@@@#+''':,,..,..:;;:+#+##@#;;;;:::::::;;;;;;;:::::::::::::::::::::::::::::::::;;''+++++++#@@@@@@#+++;';;';;.``..:,:+######++++++++####+++++++++++++++++++++++++++++++++++++';'+++++++++++''+''''''''''+'''+++++++++++++++++++++++++++++++++++++###+++++++;;;'+';;'''###################++########################':,,;
 +
::::::::,+@','+#;;'+#############+++#@@#++''';;'++'::::+:,:;:''''''':.....,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;;''''+;,,,,,,,,,,#@@@@@##@+#@@@@#+@@@@@@@@@@@@+';;:..```.`:::;'+###@#;;;;:::::::::;;;;;:::::::::::::::::::::::::::::::::;;''++++++#@@@@#@@+;'+#'+'+;,```..::;#######++++++++++###++++++++++++++++++++++++++++++++++++';'++++++++++'''+++''+'+++''++++++++++++++++++++++++++++++++++++++++###++++++#+';;;::;'+##################++###################''######;,,;
 +
::::::::::@+,;#+;'++#####@#######++++#@#+++'''+##+;::::':,:;:;''''':.......,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;;'''''+;,,,,,,,,,,,#@@@@@#+##@@@@@@#@@@@@@@@@@###';;:,.``....,;;'+##@@#;;;::::::::::::::::::::::::::::::::::::::::::::::::;''++++++#@@@@@@###+++#;'';:.`````,:'#######++++++++++###++++++++++++++++++++++++++++++++''''++++++++'++++'''''+'''''''''++++++''++++++';'+++++++++++++++++++++++++#++++++''+'::;'+###################++####################++#######:,:
 +
:::::::,:,+@'+@+'+++##########@#++++++#@#++++###+;::;:,'::::::'+'+;...........,,,,,,,,,,,,,,,,::::::::::;;;;;;;'''''';,,,,,,,,,,,,#@@@@##+#@@@@@#@###@@@@@@@@#@#+';::,`.....,';'+++@@@;;;;::::::::::::::::::::::::::::::::::::::::::::::;;''+++++#@@@@@@@#++##++;::,..` ``.,,'########++++++++##+++++++++++++++++++++++++++++++++''''''++'+++++'++++'''''''''''''''+++++''++++++';''+++++++++++++++++++++####+++++';;++''+###+#################+#################++###########'::
 +
:::::::::::@@@#+++'+#@######@#@#++#++++###+####+';;;;:,',,::::;'+;..............,,,,,,,,,,,,::::::::::;;;;;;;;;'''++;,,,,,,,,,,,,,#@@@@@@#@@@@@@#@@@@@@@@@@@@@#++':,:.`````.::''''+@@@';;;;:::::::::::::::::::::::::::::::::::::::::::::;'''++++#@##@@@@##';+#+'';;:.````.::;##########+++++++#+##++++#+++++++++++++++++++++++++';''''''';+++++'+++++'''''+++++'''++++++++++++++;;';''++++'''++++++++++++++##+++'+';;''''++#+####################################++########+'+#';
 +
:::::::::::'@##+##+#@###@######@#@@@#########+##+';;;:,:,::::::''...............,,,,,,,,,,,,::::::::::;;;;;;;;'''++;,,,,,,,,,,,,,:#@@@@@##@@@@@@@@@@@#@@@@@@@@+'+;,,,.`````.::;'+++#@@';;;;:::::::::::::::::::::::::::::::::::::::::::;;;''++++#@@@#@@@#@@#''+';;'':,````.::'##########+++++++++++++++++++++++++++++++++++++++++;;'''''';;++++++++++''++'++++++++'++++++++'++++++';'';'';;;;;'++++++++++##++#+'''+++++++';'+###############################################',,'##
 +
::::::::::::#@#+###@@#######@@@@@@@@@@@@#@@##@##+++++++++++'''+',...............,,,,,,,,,,,:::::::::;;;;;;;;;'''++;,,,,,,,,,,,,,,:@@#@@#+#######@@@@@@@@@@@@@##';;:,..`.``..,:;'+++#@@+;;;;::::::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@@@#@##@@+'++'';;,.``` .:'#############++++++++++++++++++++++++++++++++++++++++''''''+''+++++++++++++++++++++++'++++++++''''''++;;;;''''''';''+++++++#+++'''''++'+++##+';'###############################################+:,,+#
 +
::::::::::::+@##@##@######@###+#######@@@@@@@@@@@@@@@@@@######+:................,,,,,,,,,,:::::::::;;;;;;;;;''''+;,,,,,,,,,,,,,,,:@##@###@@#++++@@@@#@@@@@@@@##+;;;:,.`.``..,::'''+##@#';;;;;:::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@##@######++++';:,.`` ``.:'@##############+++++++++++++++++++++++++++++++++++++#'';''+#+++#++++++++++'''+++++++''++++++'+':;;;;;';;;:''+++''';;++++++#+''';;'+'''+++++#+';;+################################################+'##
 +
:::::::::::::@@############+';:;;;;''''';:::::::;:;;;''''''';;:.................,,,,,,,,,:::::::::;;;;;;;;;''''+;,.,,,,,,,,,,,,,,:@@@@##@@#@##+#@@@@@@@@@@@@@##++',,,.`````.,,,;;'+#@@@''';;;::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@####+##@##+#+';;:,.````.,:'@#################+++++++++++++++++++++++++++++++++++';;;;;++#+#++++++++'+';'+++++++'+''++++'+';;;''''''';'''++';;;;'++++#+';;'';''++''++'''+;;;'+###################################################
 +
:::::::::::::'@@@@@@#@##@+'':;;:::;'';:;,.````````````.,,,,,,,..................,,,,,,,,,:::::::;;;;;;;;;;''''+;,,,,,,,,,,,,,,,,,:#@#@@###@##@#@@@@@@@@@@@@@@@++';,.,.``````,:::'++#@@@#;'';;;::::::::::::::::::::::::::::::::::::;;;'''''+@@@@@#@####@@@##+#+'';::.```..,:#@#################++++++++++++++++++++++++++++++++++';;;;;'++++++++++++++'''++'++++''+''+++++++';;';;;;''''''''';,;''++++';;;;'+'''++++++'';';;';'+##################################################
 +
::::::::::::::'''+##@#@#+;:;::;;:;+';:;:::,........`,.`,,::::..................,,,,,,,,,::::::::;;;;;;;;;''''+':.,,,,,,,,,,,,,,,,;@@@@@##+#+++##@#@@@@@@@@@@@##'';:::````...::;;'''#@@##'''';;;::::::::::::::::::::::::::::::::::;;;;''''#@@@@@@##++####@@#'++';:..`````.:'####################+++++++++++++++++++++++++++++++++';;;;;'+++++++++++++++++++'++''''''++++++++++';'';;;''''';''';;''+#':;';:;++''++++'++#+++';;''+############+#####################################
 +
::::::::::::::::::::#@##'::;;;:;:'';;;;;;::.........,,,::;;:,.................,,,,,,,,,,:::::::;;;;;;;;'''''+':,,,,,,,,,,,,,,,,,,;@@@@@@@#+++'+###@@@@@@@@@@@##'';;::.````..::;:;;'+@@#@+'''';;;::::::::::::::::::::::::::::::::;;;''''+#@@@@@@#+'+''#+##@+;'';;,``````.,:+@#####################+++++++++++++++++++++++++''''+''';;''''++++++++++++++'+++++++'+++++''''++++';;;''''''''':;''''';+':;'';::'+';;''''''++##';''++######+:'###+#####################################
 +
:::::::::::::::::::,#@@#;;;;'';;:;;:''';:,,..........::;;;;,..................,,,,,,,,,:::::::;;;;;;;;;''''+':,,,,,,,,,,,,,,,,,,,;@@@@@@##++##@#@@@@@@@@@@@@@@#;';,,,.`````.,,:;,;''#@@@@''''';;;::::::::::::::::::::::::::::;;;;;''''+@@@@@@@#++';'++##@#++;';;:,.````,,:+@@#####################+++++++++++++++++''+''''''''''''''''+++++++++++++++++++'''++''++++++'+++';;;''+';''''''''''''+;;:;+'''';;+'';'++''''''++''''+######','###++#####################+++############
 +
::::::::::::::::::::+@##';;;'';:::;;'';;::........`...:;;;,...................,,,,,,,,:::::::;;;;;;;'''''''';,,,,,,,,,,,,,,,,,,,,'@@@@@@+'''##@@@@###@@@@@@@@##;;;,,:.`````..,:;:'''#@#@@#''''';;;;;:::::::::::::::::::::::;;;;;;''''#@@#@@@@@#+'+'+##@#@+++;;;;::,``.,,:'##@####################++++++++++++++++++''''''''''''''++++++++#####++++++''+++''++++++++++++++;::;++'';;;''''''''''+''''';;+++''++''';;'''''''''''''######+;+###++#########++#########+''''###########
 +
::::::::::::::::::::'@@#':;;;;::::;;;;;::;:,.....``,;.,:;:...................,,,,,,,,,::::::;;;;;;;'''''''+;,,,,,,,,,,,,,,,,,,,,,+@#@@#@#';;+++##@@@@@@@@@@@#+#+;''';,.......::::'''+@@##@+''''';;;;;;;;;;;;;;;::::::::;;;;;;;;''';+#@@@@@@#+++'''''###@#@+;';;;,````,,,:+@##@####################++++++++++++++++++';''++++++++++++++++##++''';;;;;;;;+++++++++++++++++++':;';;;;';;''''''+''+'++++;:+++++++''';:''';::;'''+'+#+###########++++######;;+########+'+++#######+++#
 +
::::::::::::::::::::'@####++';::::::;;;::::,....`.`.,``.,,`..................,,,,,,,,:::::::;;;;;'''''''''':,,,,,,,,,,,,,,,,,,,,,+@#@@@###+;;###@@@@@@@@@#@@@##+'+;:;,`......,:::;;;'####@@+''''''';;;;;;;;;;;;;;;;;;;;;;;;;'''''''#@#@@@@@+;;;;;;:'##'++#';;';:,.````,::+#@######################+++++++++++++++++++;''++'+++++++++++++++';::::::::;''+++++++++++++++++++':;;;;;+++'';;;;'+''+''++++:'+''++';;';:'''';::'+++++#++######+'###+++######++#########+'++######++#++#
 +
:::::;;:::::::::::::'###+#@@@###++''+'''';:,,,::`.``...,....................,,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,+@@@@#+#'+';+#+#@@@@@@@@@@@@@+;'',,,.``.``...,::::''++@@@@@+''''''''''''''''';;;;;;;;;;;'''''''''#@@@@@@#++;;;::;;'+###+++:;';.,.....:;'#@########################+++++++++++++++++++''+';'+''++++++++++';::,,,::::;+++'+++++++++++++++++';''++++''''';;;''''++''++++'+++++;:;;;:;''';::;''+++##+######+'#################''+############+'#####
 +
:;;::;;:::::::::::::'@#@#++#@#@@@@@@#######+'';::::::;':....................,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,#@#@@#+;,;'''+##@@@@@@@@@@@@@#'+';;:....``...,,:::''''+@@@###'''''''''''''''''''''';;'''''''''''#@@@@@#@#'';;'::;;';#@#+++::;:,.,..,;:;'#@###################+###++++++++++++++++++++''+':'++++++++++++';::::,::;;;;'+++++++++++++++++++++++++'''';''''';;'''++';++++''''''';;;';;'''';::'++++#++#########################;:+###########+'##'+##
 +
:::::;::::::::::::::'#####++#@###@@@@@@#@@@@@@#+++###@+,`..................,,,,,,,,:::::::;;;;'''''''''';,,,,,,,,,,,,,,,,,,,,,,,,#@##@#+;;::'+##@@@@@@@@@@@@@#@@#'';':::,...,,.,::,::';;'#@#@@#++''''''''''''''''''''''''''''''+#@@@@@##'';;::;::,::+''##';::,::,...,;;;'#@@##################+###++++++++++++++++++++++++'+###########+;;;::::;''';;++++++++++++++++++++++++''''''''''''';;;''';:;++++::;'+'++''';''''''++++;'##+##########################+#############'+++###
 +
::::::::::::::::::::'@##+#+++###+##########@@@@@@@@@@@:`..`................,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,,#@@#@#''+';#####@@@@@@@@@@@#####;;;;;,,.,....,,,,,::;::;+#@@@@@##########+###+++''''''''''''+#@@@@@##++;:;,,,::,:::'':'+;:::,,:,..,::'++@@#@################+###++++++++++++++++++++++++##############+';;:::'''+++++++++++++++++++++++++++''''';'''';''+;;;;'';,:'+++;:''''''+'++'''''++++':'##########################################+''+####
 +
:::;::::::::::::::::'@@#++##++##+++++++';;;;;;;';;;;':`..................,,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,,,@@@@#@##'';'####@@@@@@@@@@@@#@+#+''';;.`..,.....,,::,:;;'+++##@@@@@@@@@@@@@@@@@@###+'+''++#@@@@@###+++;;:,,,,,.,:;::'''++;;;:,:::,:;;;'#@###################+###+++++++++++++++++++++++++##############+;:::;++++#+++++++++++++++++++++++++'''''''''''''+++''''':;++++';++;::;'''+'''';'++;:'+######################+';;+###############+''+####
 +
::;;::::;:::::::::::'@#@###############+'';;::,;':::,...`................,,,,,,,::::::::;;;;;''''''''';,,,,,,,,,,,,,,,,,,,,,,,,,:@@@@@@#+;.,;+++#@@@@@@@@@@@@@#;+'+;';;:,...,,,,,,,,,,:;;'+''#####@@@@##@@@@#@@@@@@@@@#@@@@@@######+'+':::.,,,,,::';;'++++';;:;:,::;''++#@@@################++##++++++++++++++++++++++++++++++#######@###;::;'++++++++++++++++++++++++++++++'''''''';''''''+''+';;'++++++++';''++++'''';'+';'++++####################+';;+##############+'''+####
 +
;;;::;;;;:::;::;::::+@#@#+##############+';';:::++;;,...................,,,,,,,::::::::;;;;;;'''''''';:,,,,,,,,,,,,,,,,,,,,,,,,,:@@##@#'':`:;+#++#@@@@@@@@@@@#+';;';+;:;;:..::,,,,,,::,:;''''+++++#####@@@@@@@@@@@@@@@@@@@@####++++';';:,,,,,.,:::;''++''+;,:;;,.,:''''+#@@#@################++++#+++++++++++++++++++++++++++++#####+++++'::;'++#+++++++++++++++++++++++++++''''';;;;;;''''+;'+;,;++++'+++';;'++++++'+';'+++++''+#######################################+''++####
 +
;;;:;;;;;:::;;:;;:::#####++++++####++++##++;;::::++:.....`..............,,,,,,::::::::;;;;;;'''''+''':,,,,,,,,,,,,,,,,,,,,,,,,,,;@@###'';;:';'+++##@@@@@@@@@@##@+'+++;:;;;,,:,..,,,,:;,,:';;;'';'+++++######@@@@@@@@@@@@@@##++';;';;::::,,,....,::::'+';'+;::;::::;;'''+##@@#################+#++++++++++++++++++++++++++++++#+####+':::;;::''###++++++++++++++++++++++#++++''''';;';::;;''';'+:,;++++'+++'''++++''''++''''++;;'+#######################################+''+#####
 +
;;;;;;;:;;;:::::;;;;@##@#++'''''+++'+++###';:;::''+,`...................,,,,,,:::::::;;;;;;;''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,'@@####+';;:;;;'####@@@@@@@@@@#@#++';'';;;.,:,,,,,,,:;;;:;:::;;:;'''''++++++#@##@@##########+''+';;::,:,,.,,,,,.,.:;'''+++:;:::';;'+####@@###################++++++++++++++++++++++++++++++++++++###'::::::;'#++++++++++++++++++++++';'+;;''+''''''+':;'''';;'+;;++++++++++++'++';:'+++';'''+':'+#######################################+''+#####
 +
;;;;;;;::;;;::::;:'@#######++'+++++'++'+#++'::::;':....................,,,,,,:::::::;;;;;;;''''+'+'+#:,,,,,,,,,,,,,,,,,,,,,,,,,,'@++##;',;:,'''+#@#@@@@@@@@@@@@##++++'';;::;,;::,::,:;'';;;'';;';'';';;'''+'+#+'+#++++++''''';;;;;:,:,,...,,:,,,,,:;;'+++':::::;:;'+++####@#@#################+++++++++++++++++++++++++++++++++++##+;:::::;'##+++++++++++++++++++++;'';;:;''';';;''''';::::;'++''+++++++++''';;'++''''+'''''''''+#+##############################+'+####+;'######
 +
;;;;;;;;;;;;:;:;,:#############++#+++''++'++:,::::.`..................,,,,,,:::::::;;;;;;;;''''++'+#@#:,,,,,,,,,,,,,,,,,,,,,,,,,;###@#;+''''''#+##@@@@@@@@@@@@######@++';';;:';::;:,;;:;''+';';'';;;::::;;;;'+';;';;;'';;:::::,,,,,.,,..,,....,,,::::;'';';:,::,.,''++###@@###################+++++++++++++++++++++++++++++++++++##+';:,:;'+#+++++++++++++++++''+++';;'''''''''';''';;:;''+'+++++++++++++;:+',,,:;''''+'''';;;''+##+###########################+;,,'####';+######
 +
;;;;;;;;;;;;;:;:,+@###@###########++''''':::,,,,,....................,,,,,,::::::::;;;;;;;''''++''#@@@#;,,,,,,,,,,,,,,,,,,,,,,,,'@@@#@###+++';+++#@@@@@@@@@@@@@@@@##@##++';;;';:;:::;;::'+';:';;;,:;,,:,::::;;;;;;:,:;;;;:,,,,,,.,,.,.........,,,:;::;:''':::,,,,.;'+@###@####################+#++++++++++++++++++++++++++++++++++###+;;;'###+++++++++++++++'''''++'''''''':'+'++''':;;'''';;+'+++++++++';;+';;;;;::;++''+;;;;'++##############################;..;#####''#######
 +
;;;;;;;;;;;;;;::#@##############+';;;;:,.....,......................,,,,,,::::::::;;;;;;;''''+++'#@#@@@#:,,,,:,,,,,,,,,,,,,,,,,,+@####@#+:;;;;'++##@@@@@@@@@@@@@@#####+'+';;'';;::;'';'';''';':;;::;;::;;::;;:;;:::,,::;:::,,,,,,,,..,,....,,,:,::''+'+++;,:;,::::'+####@@##@###################+++++++++++++'''++++++++++++++++++###++'++#+##+++++++++++++''''''''''''''''::'+''+''';::;''++';'++++++++''++'++++++''+++'++'';;++##############################:,;+#####''#######
 +
;;;;;;;;;;;;;::###@####@###+++';:::,...............................,,,,,,::::::::;;;;;;;;'''+++++#@#@@@@@;,,,,,,,,,,,,,,,,,,,,,:+##@#++'';;;;''++#@@@@@@@@@@@@@#@##@@@#++++'+++';;;'''++';'+'+;;';:;;::;;:,;';;;:::,,,,,.,,,,,,:,...`...`.....,,::;;++#'++;::::,:;'#####@##@@###################+++++++++++++'++++++++++++++++++++####++++++#+++++++++++++''''''''';'+++++++;:;;;;''+'::'+''+'+++''''+++++++++++++++++++'++++''+##+######++++##################++#######'+#######
 +
;;;;;;;;;;;;;;#@########+++''';,..................................,,,,,,,:::::::;;;;;;;;'''++++'###@@@@@@@;,,,,,,,,,,,,,,,,,,,,:'+#@@###;,:;:+';+#@@@@@@@@@@@@@##@@#@########++#+''''+''#'++'++;;;'';::;::,:::,:::,.,,...,,,,.`..`````````..``,.,:,:;++;'';,:::,,'+@@######@#####################++++++++++++++++++++++++++++++++++###+++###+++++++++++++'''''';;;;'+++++++++'::'''+'+;,;++''++++';'++++++++'+++++++++++'+++++'#++++####+'++++######+###################+########
 +
;;;;;;;;;;;::#@#@######+'''''',..................................,,,,,,,::::::;;;;;;;;;''''+++''###@@@@@@@@;,,,,,,,,,,,,,,,,,,,:+#@#@@#+:.,;;';;+###@@@@@@@@@@@@#@@@@##@#++@##+#++++'#''#++''++';:''::::,::;;;::;:,,,,.,,....``````````````..`,..:::::+'';;::,:;;'+##@#####@#####################+++++++++++++'''''+++++++++++++++++####++#+++++++++++'+''''''';;''++';;;;;;;';;'+''''':;++';+++++'++++++++;;'++++++++++++++++++++####+++'+########':+#################++########
 +
;;;;;;;;;;;:#@@########++'''';,..................................,,,,,,:::::::;;;;;;;;''''++++;;;+######@@@@',,,,,,,,,,,,,,,,,,:#@@###'::,;;;:;'++#@#@@@@@@@@@@@@@#@@@@@###+#@##++##+####+#+++'++;';;:;';;;'''';;::;,,,,,```.``````.````````.....:;';,'#;;';;,:;''+'+#@######@###################+++++++++++++++'''''+++++++++++++++++##++++++++++++++'''''''''''''+':;''';:;+''+++';'+;'++''++++++'+++++++++++';''+++++++++++++#+###+'''+#########+;###################+########
 +
;;;;;;;;;;:+@###@#####++'''';:,.................................,,,,,,:::::::;;;;;;;;''''++++;;;;;'######@@@@:,,,,,,,,,,,,,,,,,:+##@#';;;.;';;+''+@@@@@@@@@@#@@@@@@@@@##@@@+#@@###@##@#@#####+'##+++;;'+;+;;'';:'::;::,,,..`..````.````````````.,:;''''';;;,,::,,;++####@@##@####################+++++++++++++''''''''''++++++++++'''''++++++++++++++++'''''''''''+++++++';''';'''+;:;+';++''+;:;++++++++++++++';''+++++++++++'+#+##+''++#############+###++###################+#
 +
;;;;;;;;;;+@##@#######+';';;;,.................................,,,,,,:::::::;;;;;;;;;'''++++;:;;;;;;'###@@@@@+,,,,,,,,,,,,,,,,,;#@#++##+';:''''''+@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@##@###+#@###+###+++''+;;+';'+;,;;:::;:::,,,.```.`.````` `````.,.,::;'+''::.:,,,:''#########@#####################++++++++++''''''''''''++++++++++''''++'+#+++++++++++''''''''''''++++++++;'''+++++;;:;';'++++',:'+++++++++++++++++++++++'++++'++##++'+###########+##+''+'''##+''##############+#
 +
;;;;;;;;;'@@##########'';';;,..........`..`...................,,,,,,:::::::;;;;;;;;;'''''++':;;;;;;;;+##@@@@@@;,,,,,,,,,,,,,,,,'#@@++##+'+;'''''+##@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@##@########+####++++';''';'+'+;'''';;;;:,,,..``......`````.,,:;;;::'#++#';::;:;;++###############################++++++++++'''''''''''''+++++++++'''''''+#+++++++++++''''''+++'++++++++++;'++++++++++';;'+++++''+++++++++++''+++++++++++'+++++++##'+#############+'+'''''''+#;,:+############+##
 +
;;;;;;;;;@@#@########+#+';;;,.........``..`..................,,,,,,:::::::;;;;;;;;;''''''+'::;;;;;;;;;+####@@@#:,,,,,,,,,,,,,,,+##@##++':;;'''+'+##@@@@@@@@@@@@#@@##@@@@@@@#@@@#@@@@@@#@##@##@##@#+##;;+';;;'++++++#+;'+:;:,,,,.......`..`.,:.,;';,;'#+'+';;:;:;;'+##########@####################++++++++++'''''''''''''''+++++''''';'++##++++++++++++++++++++++++++++++;'''+++;;++++'''+++++++++++++++++++''''++++++++++++''+###+'+#############+'''''''+';#',:+##########+###+
 +
;;;;;;;:#@@@#@@##########';;:,........``.``.................,,,,,,:::::::;;;;;;;;;''''''+'::::;;;;;;;;;'###@@@@',,,,,,,,,,,,,,,+@####++',::;;+++##@@@@@@##@@@@@@@@##@@@#@@@@@@@@@@@@@@@@#@@@@#@+###@#'+#'+'''#+++#+++''+;+';:::,,,.```.`````..,:,,,;;'''';:::,,:;'++#####@########################++++++++++'''''''''''''''+++++'''';;'++++#######++++++++++++++++++++++''+''++':;++''+++++++++++++':'+++++++++++++++++++'+++++##++++############'''''''+##':+#''##+++#########+#
 +
;;;;;;;#@@#@#@##########+'';;,..........``.................,,,,,,:::::::;;;;;;;;;''''''+':,:::;;;;;;;;;;'##@@@@#:,,,,:,,,,,,,,,+##@#@##+''':'###@@@#@@#@##@@@@@@@@@@@@@@@@@@@@@@@@@@##@#@@@@@#@'++++##+##+#+##''+++++''+';';;:::,,.,`..````...::,,:;;;;++;;:'''+######+###########++##############++++++++++++'''''''''''''++++++''''+#++'+#####+++++++++++++++++++++++';''''++''+++''++++++++++++++'+''+++++++++++++++++++++++##+++###########+'''''''#####+#######+####++#####+
 +
;;;;;;;@@#@#@########+''';'+';,..........................,,,,,,,:::::::;;;;;;;;''''''++';,,:,::;;;;;;;';;##@#@@@',,,,,,,,,,,,,:+##@##@#+#'+'+#####@@@@@@##@@@@#@@@@@@@#@@@@@@@@@@@@@@#####@##@#####+#+'++''+##+++++##+'+';;:;::,,,,,,:,,....``.:::;;;++;'+:'@@@@@@#@@##@##+######+;;'#############++++++++++++''''''''''''+++++++''+####++#++++++++++'''''''''''''''''++'+''++''++'''+++++;'+''+++++++++++++++++++'+++++++++++++#+++#+';;++###+'''''''+++#+++########++++''+++#+;
 +
</pre>

Latest revision as of 01:45, 28 July 2009

// Onion Growing macro made by Oni - changed by lazybum
// Works only with Aqueduct window pinned up in TOP RIGHT!
// Pin plant window in TOP LEFT!
// see image for mouse start location.

constants
	Batch = 0
	StartX = 0
	StartY = 0
	NewX = 0
	NewY = 0
	Job = 0
	MDelay = 100
	SDelay = 200
End

SetConst StartX = {MouseX}
SetConst StartY = {MouseY}
TimeStamp $StartX, $StartY

Form Veggie, Settings
	ed1=Editbox:Batch:1
	ed2=ComboBox:Project:Onions
End

FormLoad Veggie, Veggie.frm

if ShowForm Veggie
	set Batch = Veggie[ed1]
	case
	When Veggie[ed2] = Onions
		set Job = Onions
	End
else
	Stop
End

FormSave Veggie, Veggie.frm

Loop $Batch
	Call $Job
End

Procedure Onions
	MousePos 40, 10
	leftclick
	delay 1000
	MousePos 86, 160 // close plant window
	delay 50
	rightclick
	delay 50
		/// Plant 8 onions ///
		// (1) //
	MousePos 52, 43 // plant click
	delay 300
	rightclick
	delay 1077
	MousePos 45, 84 // NW
	delay 300
	rightclick
	delay 300
	MousePos 31, 162 // click "build"
	delay 300
	rightclick
	Delay 75
		// (2) //
	MousePos 52, 43 // plant click
	Delay 75
	rightclick
	delay 1077
	MousePos 59, 78 // N //
	Delay 75
	rightclick
	delay 50
	MousePos 31, 162 // click "build"
	delay 50
	rightclick
	Delay 75
		// (3) //
	MousePos 52, 43 // plant click
	Delay 75
	rightclick
	delay 1077		
	MousePos 74, 84 // NE //
	Delay 75
	rightclick
	delay 50
	MousePos 31, 162 // click "build"
	delay 50
	rightclick
	Delay 75	
		// (4) //	
//	MousePos 52, 43 // plant click
//	Delay 75
//	rightclick
	delay 1077			
////	MousePos 82, 100 // E //
//	Delay 75
//	rightclick
//	delay 50
//	MousePos 31, 162 // click "build"
//	delay 50
//	rightclick
//	Delay 75		
		// (5) //
	MousePos 52, 43 // plant click
	Delay 75
	rightclick
	delay 1077		
	MousePos 73, 115 // SE //
	Delay 75
	rightclick
	delay 50
	MousePos 31, 162 // click "build"
	delay 50
	rightclick
	Delay 75		
		// (6) //
	MousePos 52, 43 // plant click
	Delay 75
	rightclick
	delay 1077			
//	MousePos 59, 123 // S //
//	Delay 75
//	rightclick
//	delay 50
//	MousePos 31, 162 // click "build"
//	delay 50
//	rightclick
//	Delay 75		
		// (7) //
//	MousePos 52, 43 // plant click
//	Delay 75
//	rightclick
//	delay 1077			
//	MousePos 44, 114 // SW //
//	Delay 75
//	rightclick
//	delay 50
//	MousePos 31, 162 // click "build"
//	delay 50
//	rightclick
//	Delay 75		
		// (8) //
//	MousePos 52, 43 // plant click
//	Delay 75
//	rightclick
//	delay 1077			
//	MousePos 35, 101 // W //
//	Delay 75
//	rightclick
//	delay 50
//	MousePos 31, 162 // click "build"
//	delay 50
//	rightclick
//	Delay 75	
	///// END PLANT ////

		

	

	/////WATER////////
	/////Set1/////
MousePos 496, 384
keys w
delay 75
MousePos 515, 383
keys w
delay 75
MousePos 535, 382
keys w
delay 75
MousePos 537, 404
keys w
delay 75
MousePos 536, 427
keys w
delay 75
MousePos 515, 428
keys w
delay 75
MousePos 495, 428
keys w
delay 75
MousePos 495, 408
keys w
delay 75


		////////Fill Jugs///////
MousePos 782, 49


delay 50
leftclick
delay 50	
MousePos 789, 123
delay 50
leftclick
delay 50	
	//// LOOP 1
delay 19000
MousePos 496, 384
keys w
delay 75
MousePos 515, 383
keys w
delay 75
MousePos 535, 382
keys w
delay 75
MousePos 537, 404
keys w
delay 75
MousePos 536, 427
keys w
delay 75
MousePos 515, 428
keys w
delay 75
MousePos 495, 428
keys w
delay 75
MousePos 495, 408
keys w
delay 75

		////////Fill Jugs///////
MousePos 782, 49


delay 50
leftclick
delay 50	
MousePos 789, 123
delay 50
leftclick
delay 50	
	/////Set2/////
delay 19000
MousePos 496, 384
keys w
delay 75
MousePos 515, 383
keys w
delay 75
MousePos 535, 382
keys w
delay 75
MousePos 537, 404
keys w
delay 75
MousePos 536, 427
keys w
delay 75
MousePos 515, 428
keys w
delay 75
MousePos 495, 428
keys w
delay 75
MousePos 495, 408
keys w
delay 75

		////////Fill Jugs///////
MousePos 782, 49


delay 50
leftclick
delay 50	
MousePos 789, 123
delay 50
leftclick
delay 50	
	/////Set3/////
delay 19000

MousePos 496, 384
keys w
delay 75
MousePos 515, 383
keys w
delay 75
MousePos 535, 382
keys w
delay 75
MousePos 537, 404
keys w
delay 75
MousePos 536, 427
keys w
delay 75
MousePos 515, 428
keys w
delay 75
MousePos 495, 428
keys w
delay 75
MousePos 495, 408
keys w
delay 75

		////////Fill Jugs///////
MousePos 782, 49


delay 50
leftclick
delay 50	
MousePos 789, 123
delay 50
leftclick
delay 50	
	/////Set4/////
delay 19000
MousePos 496, 384
keys h
delay 20
keys w
delay 75
MousePos 515, 383
keys h
delay 20
keys w
delay 75
MousePos 535, 382
keys h
delay 20
keys w
delay 75
MousePos 537, 404
keys h
delay 20
keys w
delay 75
MousePos 536, 427
keys h
delay 20
keys w
delay 75
MousePos 515, 428
keys h
delay 20
keys w
delay 75
MousePos 495, 428
keys h
delay 20
keys w
delay 75
MousePos 495, 408
keys h
delay 20
keys w
delay 75

	////// Harvest////////
delay 19000
MousePos 496, 384
keys h
delay 20
keys w
delay 75
MousePos 515, 383
keys h
delay 20
keys w
delay 75
MousePos 535, 382
keys h
delay 20
keys w
delay 75
MousePos 537, 404
keys h
delay 20
keys w
delay 75
MousePos 536, 427
keys h
delay 20
keys w
delay 75
MousePos 515, 428
keys h
delay 20
keys w
delay 75
MousePos 495, 428
keys h
delay 20
keys w
delay 75
MousePos 495, 408
keys h
delay 20
keys w
delay 75

	////////close pin///////


delay 6001
		
End	
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@#####++++''''''''''''''''''''''''''''''''++####@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@########++++''''''''''''''''''''''++++#######@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########+++++++++##########@@@#@@@@@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#@@@@@@@#@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@###@#@@@###@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@##@@@@@##@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@#''+###@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@##@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@+;;;;;;;'++##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##++'';'#@@@@@@@@@###############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@+'';;::::::::;;''++#######@@@@@@@@######++''';;::::;;;;#@#@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@#@@+'';;;::::::::::,,,::::::::;;;;;;;:::::::,,:::::::;;;;;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;:::::::::::::::::,,,,,,,,,,,,,::::::::::::::;;;;;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;::::::::::::::::::::::::::::::::::::::::::::;;;;;#@@@#@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+''';;;::::::::::::::::::,,,,,,,::::::::::::::::::;;;';#@@#@@@@@@@##############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+''';;::::::::::::::::::,,,,,,,,:::::::::::::::::::;;;;+@@#@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;''';::,,:::::::::,,,,,,,,,:,,::::::::,:::;;;;;;;;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+;''########+;:,,::::,,,,,,,,,,,,,:::::::::'+#######';;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@#@+;+##+'''''+#@#+:,,::,,,,,,,,,,,,,:,,:,:;+##+'''''+@@+;#@#@@@@@@@@##############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@#+@#'++++''';'+@@+:,,,,,,,,,,,,,,,,,:,;##+';'''++''+#@+#@@@@#@@@@@##############################################################################################################################################################
###############################################################################################################################################################################################################################+##@@@@@@@@@@@@#@@@##'++++++++'';;+@@':,,,,,.,,,,,,,,:;##+;;''''+++++'+@@@@@#@@@@@#@##############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#++++++##@@@@@#+'+@#;,,,.....,,,,:+#+;'+#######++++'+#@#@@@@@@@@@##############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@##@####@#;+@@++#'#+;#@+,......,,,;##;;##+@@#@+'#@##+###@@@@@@@@@@@##############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@++@@@@#: `#@@+#@..'#:;:,,......,;#':'@;.'@'+@#.`:#@#@@+#@@#@@@@@@@##############################################################################################################################################################
##############################################################################################################################################################################################################################+#+@@@@@@@@@@@@@@@@+'#@@#,  .#@@@@@, `'#,,,,.....,,,::'#, `#@#@@@:  `+@@#'#@@@@@@@@@@##############################################################################################################################################################
##############################################################################################################################################################################################################################+##@@@@@@@@@@@@@@@@+'++#@'.  ;@@@@'`   '',,.......,::;#,   '@@@@@.  .+#+';+@@@@@@@@@@##############################################################################################################################################################
######################################++++++++++++++++########################################+#######################################++++++++################################################################################+##@@@@@@@@@@@@@@@#+''''+@#'.`:++;``,;'##:,.......,,:+#';, .'@##, .'@#';';+@@@@@@@@@@##+########################################+###############################+##################################################################################
######################################++++++++++++++++########################################++######################################++++++++##############################################################++##########++####+##@@@@@@@@@@@@@@@#'''''';+##+;;:;;##+':+;.......,,,:#'+##+;::;:;+##';;;;;+@@@@@@@@@@##+########################################+###############################++##########################################++#####################################
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@#''';;;;;;;'+###+';::,::........,,:'::::'+#++##';::;;;;;'@@@@@@@@@@@#+#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
######++##############################++++++##++++++##################+++#++######++##########++++++##++##++##++################++++##++##++##################################################################++##++++++##++#####@@@@@@@@@@@@@@@#'';;;:::::::::::::::,,,,.......,::::::,,,::::::::::::;;'#@@@@@@@@@@##########++##++##############################################++##########++######################++##++##############++################+++++#++#############
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###@@@@@@@@@@@@@@@#'';;:::::::::,,,,,,,,,,,.......,:::::,,,,,,,,,:::::::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@#'';;:::,,,,,,,,,,,,,,,,,.......,,:::,,,,,,,,,,,,,,,::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@+'';;:::,,,,,,,,,,,,,,,,,.......,,:::,,,,,,,,,,,,,,,:::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@+'';;::,,,,,,,,,,,,,,,,,,.......,::::,,,,,,,,,,,,,,,:::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,:::,,,,,,,,,,,,,,,,::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,::,,,,,,,....,,,,,,::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,::,,,,,,......,,,,:::;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,,,,,,,,,......,,,,,::;;#@#@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@#'';::,,,,,,,..,,,,,,,,,,,......,,,,,,,,,,.......,,,,::;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@#'';;:,,,,,,....,,,,,,,,,,......,,,,,,,,,,.......,,,::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@#'';;:,,,,,,,..,,,,,,,,,,,,.....,,,,,,,,,,......,,,,::;;'@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@#'';;::,,,,,,..,,,,,,,:,,,,,,,,,,,,,,,,,,,.....,,,,,::;;'@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,::,,,,,,,,,,,,::,,,,,,....,,,,:::;;+@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@+'';;:,,,,,,,,,,,,,,;;:::::::::::,:;,,,,,,,,,,,,,,::;;;#@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@+'';;::,,,,,,,,,,,,,;';;;;;;;;;;:::;,,,,,,,,,,,,,:::;;;#@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@#''';::,,,,,,,,,,,,,:++#+'''';;+';;:,,,,,,,,,,,,::::;;'@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@#@@@@@@@@@@@#@@+'';;::,,,,,,,,,,,,,;''++''''++'';,,,,,,,,,,,,,:::;;;+@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@#'';;:::,,,,,,,,,,,,,::;'+++''::::,:,,,,,,,,,:,:::;;;#@#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@#@@@@@@@@@@@@@''';;::::,,,,,,,,,,:,::::;:::::,,:,,,,,,,,,,::::;;;+@@#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@#'';;::::,,,,,,,,,,::::::::::::::::,,,,,,,,::::;;:;#@#@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@+;';;:::,,,,,::::::::::::::::::::::::,,,::::::;:;+@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@#''';;::::,:::::::::;;;;;::;;;;:;::::::::::::;;;'@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@#@#@@#@#'';;;::::::::::::'###+';'###+';;;;:::::::::;;'@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@@@@@@@#;;';:::::::;+''##@@@#####@@###++'::::::::;:;#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@+';;;::::::;+#@@@@@@@@#@@#@@@@##';::::::;;:#@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@+;;;:::::::;'+###++#@@#++####+;;::::::;::+@@@#@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@';;;:::::::;;;;;::;'';::;;';;::::::::::'@@#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@#';::::::,:;';;;;;;;;;;;''''':::::::::'@@@#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;:::::,:,:+''''''''''''''';::::::::'@@@@@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::,:;+++'++++''''++;::::::::'@@@@@@#@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::,:::;'+++++'++++';::::::::'@@@#@@@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'::::::::::;;''''''';:::::::::+@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@';:::::::::::::::::::::::::,:+@@#@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;::::::::::,,,,:::::::::::+@@#@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:;;:::::::,,,,,,,,,:::::::'@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::::::,,,,,,,,,::,:::;'@@@@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:::::::::::,,,,,,,,,,:::;;;'@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:::::::::::::,,,,,,::::;;;:+@@@@#@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+::::::::::::::::::::;;;;;;:+@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+:::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@#@@@@#@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@@#@#@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@#@@@@@@@@#@@@@@@@@@@@@@@@@@@@#@#::::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@@#@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@+:::::::::::::::::::::;;;;;;:'@@@@@@@@@@@@@#@##@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@'::::::::::::::::::::::::;;;:'@@@@@@@@@@@@@####@#@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::::::::::::::::::::::::;@@@@@@@@@@@@@####@#@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#'::::::::::::::::::::::::::::::+@@@@@@@@@@@###@###@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:;;::::::::::::::::::::::::::;:+@@@@@@@@@@@###@####@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@#@@@@@#@@@@@@@@@@@@@@@@@@@@';;;;;;:::::::::::::::::::::::;:;@@@@@@@@@@@@#####@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';'++##@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@#';;;;;;;;:::::::::::::::::::::;::+@@#@@@@@@#######@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;:;;;'#@@@@#@@@@#@@@@@@@@@@@@@@@@@#@#+;;;;;;;;;;;::::::::::::::::;;;;;#@@@@@@@########@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;;;;;;:;'#@@#@@@@@@@@@@@@@@@@@@@@@@@##@#+';;;;;;;;;;;::;;;;;;::;;;;;;;:;#@@@@@@#########@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;;;;;;;;;::;+@@@@@@@@@@@@@@@@@@@@@@@@#####@@+';;;;;;;;;;;;;;;;;;;;;;;;;;;;#@@@@@@@#########@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++####+';::;;;;;:;:;;::;;;;#@@@@@@@@@@@@@@@@@@@@@@@@####@@@@#+';;;;;;;;;;;;;;;;;;;;;''#@@@@@@@@@#########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';::,...:;;;;;:;;:;::::::;:#@@#@@@@@@@@@@@@@@@@@@@#####@@@@@@@@##+'';;;;;;;;;;;''++#@@@@#@@@@@@@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###+';:,..........:;;;;;;;::::::::::;;#@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@#####+######@@@@@@@@@@@@@@@@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###'';:,........`......:;;;;;;::::::::::::::+@@#@@@@@@@@@@@@@@@@@@@####@@#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@#@@@#@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''';;;;;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###++';:,....................:;;;;;;:::::::::::::::'@@#@@@@@@@@@@@@@@@@@@@@#######@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@#@@@@########@@@@@@@##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;::,,..,,,,,,,,,,,,,,
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+++';::,,.....................```,;;;;;;::::::::::::::::'@@@@@@@@@@@###@@@@@@@@@###@###@@@@@@@@@@@@@@@@@@@@@##@@@#@@#@##@@@#@@@#######@@@@@@@@@+'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,.```````.,,,,,,,,,,,,..
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#++';::,,,.......................`````.:;;;;;:::::::::::::::::;#@@@@@@@@@@##@@@@@@@@@@###@##+#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#'#@@@@@########@@@@@#@@@+;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,.``..`.......,,,,,,,........
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,....,,,,,,...............`.....```````,;;;;;::::::,,,,,:::::::;#@@@@@@@@@###@#@@@@@@@#########@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#;#@@@@@########@@@@@@#@@#::;;;;''''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';,.``..........,,,,,,,,,,,,.........
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#++';,....,,,,,...........................````````.;;;;;:::::,,,,,,,,:::::::+@@@@@@@@@##@@@@@@@@@@@##@######@@@@@@@@@@@@@@@@@@@@@#@##@@#@@'+@@@#@@########@@@@@@@@#:;;:::;;;;;;;;''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+';:,......`..,,,,,,,,,,,,,,,...............
;'''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,........,,,,,,,......................````````````.,;:;::::::,,,,,,,,,,::::::'@@@@@@@@@##@#@@@@@@@@##@###+####@@@@@@@@@@@@@@@@@@@@#@#####@@+#@@@@@########@@@@@@@@@#:::;;::::;;;:::;:::;'+#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,........,....,,,,,,,,,,,....................
.....,..,,,:::;;;;'''''+##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,,`````.,,,,,,,.............................````````..`..,:;;;;::::,,,,,,,,,,,::::::;@@@#@@@@@#@##@@@@@@@@@@########@@@@@@@@@@@@@@@@@#@@#######@#@##@@@@#########@@@@@@@@@#:::::;:,,:::::::::::,,,;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,..........,,,,,,,,,...............................
,,,,,,......................,,,,::::;;;;''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';,,.````........,,,,,,,...............`....``````````............,;;;;::::,,,,,,,,,,,,,::::::#@##@@@#@#@##@@@@@@@@@#######@#@@@#@@@#+#@@@@@@#+@@#######+@@@@@@@#@#########@@@@@@@@#:::::::::::;:::::::::::,,,:'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,,...............,,,,,,,,,................................
,,,,,,.,...,....................................,,,,,::::;;;''++++++######++++++++++++++++++++++++++++++++++++++++++++++++++';:,.`````````..,,,,,,,.......................```````````.````..,,,,,,,,,:;;;;:::,,,,,,,,,,,,,,,:::::'@@@@@@#@#@##@@@@@@@@@#@####@#######@@#+#@@##@@#+#@###@###'#@#@@@@@##########@@@@@@@@#::::::::;;;:;;::,,,,,:::,,,,,;+#+++++++++++++++++++++++++++++++++++++++++++++++++++#++';::,..,,,,,,,,,,...................................................
,,,,,,,,,..,,,............................................,,.,.....,,,,,,::::::;;;;;;'''''++++#++##++#++++++++++++++++';:..````````........,,,,,,,.........................................,,,,,,,,,,:;;;::::,,,,,,,,,,,,,,,:::::;@@@@@@@@###@@@@@@@@@@@#+##@###@#@+#@@#'#@@##@@#'#@@##@###'+@@@@@@@##########@@@@@@@@#:::::::::;::::,,,,,,,,:::::::,,:'+#++++++++++++++++++++++++++++++++++++++++++++';:,..........,,,,,,.......................................................
,,,,,,,,,,,,,,,,,......,,,,,...............................,,....,,,..,,,,,,,,,,,,,,.,,,::,,,,,,,::::;;''''+++++';:,.`````````````..,,,,,,,.................................,...,,,,,,,,,,,,,,,,,,,,,;;;;:::,,,,,,,,,,,,,,,,,::::;#@@@@@@@###@@@@@@@@@@@+:+@@#+####'#@@#'#@@##@@@+#@@#++@#@''#@@@@@@###@######@@@@@@@@#::::::::::::,,,,,,,,,,,,::,::::,,,:'++#++++++++++++++++++++++++++++++'';;::,,.........,,..................................................................
,,,,,,,,,,..,,,.........,...................................,,...,,,,,.,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,........`..```..........,,,,,,,...................................,,,,,,:,,,,,,,,,,,.....,;;;;:::,,,,,,,,,,,,,,,,,,:::;'@@@@@@@@###@@@@@@@@@@;,+@#@###@#;#@@#'#@@##@##++@@@+;##@+:+@#@@@@##########@@@@@@@@+::::::::::;;::::::::::,,,,,.,,,,,,,...,;;;''+++++###++''''';;;;::,.........,,.,,,..................```....................................................
..,,,,.,,...,........................................,.......,,,,.,,,,,,,,,,,,,,,,.,,,,,.............,,,,,,,,,,,,,,.,,,.,,,,,,,,,,,,...............................................,,,,,,,,,,,,.....,;;;;:::,,,,,,,,,,,,,,,,,,:::;;#@@@@@@@@##@@@@@@@@@#::#@@@#@#@+;#@@#'@@@##@+#++@@@#;####:;@@@@@@@#########@@@@@@@@+::::::::::;;;;::;:::::,.,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........................................................................
,..,,,,,,.............................................,.,.....,,,.,,,,,,,..,,,,,...,.....................,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................................,;;;;:::,,,,,,,,,,,,,,,,,,::::;+@@@@@@@@@#@@@@@@@@@+,'@#@#+#@@+:#@@+;#@@#+#+++;#@@#:'@#@;,#@@#@@@########@@@@@@@@@+:::::::::::,..........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,.......................`...................................................
,,.,,,,..,,...,................................................,,..,,..,,,.,,.,,,,,...................................,,,,,,,,,,...,...............................................``...............:;;;;:::,,,,,,,,,,,,,,,,,,,::::;###@@@@@@@@@@@@@@@@':+@@#+;#@@;,#@@':#@@#+#'+':#@@#::@@@+,'@@#@###@##@###@@@@@@@@@':::::::::::.``````````..............................................................................``....................................................
................................................................,..,,,,,,,,,.....,.....................................,,,,,,,,,.......................................................`............:;;;;:::,,,,,,,,,,,,,,,,,,,::::;'@@#@@#@@#@@@@@@@@#;'#@@#';#@@:,#@@',#@@#'+##+.'@@@;.#@@#:;#@@@@@@@####@@@@@@@@@@@'::::::::::::.`````..................................................................................`.....................................................
...........................,,...,................................,,,,,,,..,,.......................................,,...,,,,,,,,,,..................................................................:;;;;:::,,,,,,,,,,,,,,,,,,,:::::;#@@#@@@@@@@@@@@@@#;+@@@#;'#@#,,#@@;,#@@+;##@+.;@@@;.+@@@':+@@@@##@###@@@@@@@@@@@@;::::::::::::.............................................................................................................................`...........,,...
.........................................,........................,...,...,,...................................................,,,..................................................................:;;;;::::,,,,,,,,,,,,,,,,,,,,:::;'#@#@@@@@@@@@@@@@+'#@@@+''@@#.,@@#,.#@@+;#@@#.,@@@'.'@@@+:+@@@@@#####@@@@@@@@@@@@;::::::::::::,.................................................................................................................................,,,,,,,,,,,,
.......................................,,,,,.......................................................................................,................................................................:;;;;::::,,,,,,,,,,,,,,,,,,,,:::;;+@@@@@@@@@@@@@@#''#@@@+'+@@+`:@@@,.#@@+:#@##..#@@+.;@@@#;'@@@@@###@@@@@@@@@@@@@#::::::::::::::.........................................................................................``.................................,,,,,::::::::::::
....................................................................................................................................................................................................:;;;;::::::,,,,,,,,,,,,,,,,,,:::::'@@@@@@@@@@@@@@#'+@@@@+'#@@+.;@@@,,#@@+:#@#@,`+@##,:#@@@''@@@@@###@@@@@@@@@@@@@#::::::::::::,:,...................................................................................```````.............................,,,,,,,,::;;;;;;;;;;;
....................................................................................................................................................................................................:;;;;:::::::,,,,,,,,,,,,,,,,,,::::'@@@@@@@@@@@@@@#;+@@@#++#@@',+@##,,#@@+;+@@@;`'@#@;:#@@@+'@@@@@###@@@@@@@@@@@@@+::::::::::::::,...........................................................................````````````````.........................,,,,,,,,,,,:::::::;::;;:
......................................................................................................................................,.............................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,::::;@@@@@@@@@@#@@@+'#@@@#++@@@',+@@#::#@@#;#@@@'.'@#@':+@@@#'@@@@@###@@@@@@@@@@@@@'::::::::::::,:,...........................................................................```````````````.........................,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................................................................................................,,,,,......................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,,:::;@@@@@@@@@@@@@@+'@@@##++@@@':+@@@;;@@@#'##@@+,'@@@#:'#@@#'@@@@@@##@@@@@@@@@@@@@;::::::::::::,:,...................................................................................................,,,,,..,,,,,,,,,,,,,..,,,,,,,............
.........................................................................................................................................,,,,,......................................................,;;;;;:::::,,,,,,,,,,,,,,,,,,,,,::;#@@@@@@@#@@@@@++#@@@#+#@@#;;#@@@''@@@#'+@@@#:;#@@#;;#@@@+#@@@@@##@@@@@@@@@@@@#:::::::::::::,,,..............................``.....``....`.........................................,,,,,,,,,......,,,......,,,,,,,,,,,,,,,,,,,...,...,,,,.
...................................................................................................................................................,................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,,,:::@@@@@@@@@@@@@@+#@@##++#@@#;;#@@#;'@@@#++##@#;:#@@@':+@@@##@@@@@#@@@@@@@@@@@@@#:::::::::::::,,,...............................`.....`.................................,.,,,,,,,,,,,,,,,:,,,,,,,,,.........,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................................................................................................................,...............................``````````````.....:;;;;::::::,,,,,,,,,,,,,,,,,,,,,::#@@@@@@@@@@@@@+#@@##++#@@#;'#@@#;'@@@#++#@@#;:#@@@':+@@@##@@@@@@@@@@@@@@@@@@@':::::::::::::,,,......................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,..,,.,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,
......................................................................................................................................................,,..........................```````````....,,,,:;;;;::::::,,,,,,,,,,,,,,,,,,,,,::#@@@@@@@@@@@@@#@@@@###@#@#''@@@#;'##@#++#@@#;:+@@@+;+@#@@@@@@@@@@@@@@@@@@@@@@;:::::::::::::,:,...........................,...,,,,,,,,,,,,,,,,,,,,,,,,..,,...,,.,,....,,,,,,...,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,
........................................................................................................................................................,.....................................,,,,,,,:;;;;::::::,,,,,,,,,,,,,,,,,,,,::,+@@@@@@@@@@@@@#@@@@###@@@#'+@@@#;'@@##++++##':+@@@#''#@@@@@@@@@@@@@@@@@@#@@@+:::::::::::::,,:,................................,................,,,,,,,.,,....,,,,,,,,,,..,,,..,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::,,,,,,,,,,,,,,,,,,,,,::,'@@#@@@@@@@@@@@@@@@##@@@@#+#@@@#''##+####+++';'@@@#''#@@@@@@@@@@@@@@@@@@#@@@;:;::::::::::::,,,.................,,,,...,........................,,.,,,,........,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::,,,,,,,,,,,,,,,,,,,,::::;#@@@@@@@@@@@@@@@@@@@@@@@#+#@@#@######++#++++++@@@@++#@@@@@@@@@@@@@@@@@@@@@+:;;::::::::::::,,,.................................................,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...........................................................................................................................................................,,,...,,,.,,,..,,,,.,,,,......,,,,,..,,,,,,;;;;;::::,,,,,,,,,,..,,,,,,,,:::::+@@@#@@@@@@@@@@@@@@@@@@@###@@@#######+#+++++++#@@@#+#@@@@@@@@@@@@@@@@@#@@#;::;::::::::::::,,,..................................,,,,,,,,,,,,,,,,,......,,,.,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.............................................................................................................................................................,.......,.....,.,,,,,,,......,,,,,,,,,,,,:;;;;;:::,,,,,,,,,,....,,,,,,:::::;@@@#@@@@@@@#@@@@@@@@@@###@@@@######+++++++++++#@#####@@@@@@@@@@@@#@@@@@#;:::;::::::::::,:,:,......................................,,,.,,...................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..............................................................................................................................................................................,,,,.,,,,,..,,,.,,,,,,,,,;;;;;:::,,,,,,,,.......,,,,:::::::'@@@@@@@@@#@#@@@@@@@@@@@#@@@@#######++#+++++++#@@###@@#@@@#@@@@@@@@@@@#;:::::::::::::::::,,,............................................................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................................................................................................................................,,...,,,..,,,,,,,,..,,,.,,,.,;'';;:::,,,,,,,.........,,,::::::::;'####+;;'@@@@@@@@@@@@@@@@@@#######+++++#++++#@@@####@@#@@@@@@@@@@@+;;,,::::::::::::::::,:..........,.................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................................................................................................................,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..:';;;:::,,,,,,,.........,,,:::::::;;:,,.`` .:+@@@##@@@@@@@@@@@##+##++++++##++++++@@@###@@#''######';;'',,,,:::::::::::::::,,,............................,,,,,,,..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.,,,
..........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;';';;:::,,,,,..........,,,::::;::;'':.` ``.::'#@@@@@@@@@@@@@@#+++#+++++#+:.;++++#@@####+';;;+':,,.` `.:,,,,::::::::::::::,,,........................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,..,..,,.,,,....................,,,,,,,,,,,...................
............................................................................................................................................,,,,......,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;#'';;:::,,,,,...........,,::::::::'+':````.;:;;'#@@@@@@@#@@@@#+++++++++++.`:++++#@@@#+';;;;;+#':,.``  .,,,,:::::::::::::::,,.....................,,,,,,::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,.,..................................,......,,...................
...........................................................................................................................................,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;@';;;;::,,,,,...........,,::::;;::'''+,```.:::;:;'#@@@@@@@@@@#+++++++++#+':'++++#@@#';;;;;;:'#+;:.``` `,,,,,:::::::::::::,,,.,,,,,,,,,,,,,,,,,:,,:::::,::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,..................................,......,,...,...............
.................................................................................................................................,....,,,.,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'@+;;;;::,,,,,...........,,:::::::;'''';:,..::::::::;'##@@@@@@#++++++++#+++#+++++#+;;;;;;;:::'#;:;,.  `.,.,,,,::::::::::::::::::::::::::::;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,.............................,,,.....,,,,,,,,,,,,,,,,,,,,..,,,,
.....................................................................................................................................,,..,,.......,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@#';;;:::,,,............,,,::::::;'''';;';,:::::::::::;;'+######+++#++++++++++++;:;;;;;::::,'+;;:::```.....,,,::::::::::::,:;;;;;;;::;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,...........................,,,,....,,,,,,,,,,,,,,,.,,,.....,,,
.....................................................................................................................................,,...,......,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@#';;;:::,,,,...........,,,:::::::'''';;;';:,:::::::::::::::::+#+#++#+++++++++#';;;:::::::,,'+;;:::,,......,,,::::::::::::::;;;:::::::::::::::::::::::::,,,,,::::::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,.....,,,,,,,,,...,,...........,.
...................................................................................................................................,,,,,...,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@+;;;:::,,,.............,,::::;::'''';''';,:,,,,,,,::::::::,,;##+#+###++#++++#;::::::::,,,,;';;:::,:;......,,,:::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,...................................,,,,.,,,,,,,,,,,.........,,
...................................................................................................................................,,.,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@#;;;;::,,,.............,,:::::::''''';'';,,,,,,,,,,,,,,,,,,,,+#++##++##++++#+::::::,,,,,,.:';;::::;:.......,,::::::::::::::::::::::::::::::::::::::::,,:::::,,,:,:::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,,....,,,,,,,,,,....,,........,,,
...................................................................................................................................,,.,....,,,.,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@';;;::,,,.............,,,::::::;''''++':,,,,,,,,,,,,,,,,,,,,,+#+++##++++##+:,:::,,,,,,,,.,;;;;::;;:........,,::::::::::::::::::::::::::::::::,:::::,,,::::,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,...................................,,,,.,,,,,,,,,..........,,,
..............................................................................................................................,....,,,,....,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,#@@@+;;;::,,,.............,,,,::::,,:;;';;,,,,,,,,,,,............:+#+#+#+##+#+:,,:,,,,,,,,....,;';;;;:..........,,::::::::::::::::::::,:::::::::,,::::::,,:::::,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,,...,,,,,,,,,,,,,,,..,,,.,,..,,,
.............................................................................................................................,,..,,,,,......,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@#';;:::,,..............,,,:::;:::,,,,,,,,,,,,,,...............,'########':,,:,,,,,,,,.......,::,,...........,,:::::::::::::::::,::,:::::::::,,::::,,,,:::::::::::::::,:::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,.............,.....,,,,,..,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................................................................................,,..,...,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@';;;::,,..............,,,:::::,,,,,,,,,,,,,,...................,'++++;:,,,,,,,,,,,,,........`...............,,:::::::::::::::::::::::::,::::,,::,,:,:::::::::::::::,,::::::::,,,,,,,,,,,,,..,,...,,..,,..............................................................
..........................................,.............................................................................,,,.............,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,#@@@@+;;:::,,,..............,,:::::,::,,,,,,,,,,.....`..`.............,,,,,,,,,,,,,,,,,,,.........................,::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,,::::,,,,,,,,,.....................................................................``...
...........................................................................................................,..,,,.,,,...,,,,,.,,.,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@+;;;::,,,..............,,:::::,,,,,,,,,,...,,,:;:;;;,,.``..........,,,,,,,,,,,,,,,,............``............,,:::::;:::::::::::::::::::::::::,:::::::::::::::::::::::,::::::,,::,,,,,,,,,,,.........................................................................
........................................................................................,..,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@#;;;:::,,...............,,:::::,:,,,,,,,:;+###@@##@@#++::,.......,,,,,,,,,,,,,,,,............```.`.`..........,,:;:;;;::::::::::::::::::::::::::::::,,:::::::::::::::::,:::::::,:,::::,,,,,,,,,,,,...................,,...,,,,,,,,,,,,,::::::::::::::;;;::;;;:::;;;''
,,.............................................,,......................................,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@';;:::,,...............,,:::::,,,,,,:'##@#@###'++##+##+++':......,,,,,,,,,,,,,,,.........`.`````..```.,,,;;;;::::;;;;:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::,::::,,,,::,,,,,,,,..........,,,,,,,,,,,,,,:::::::,,:::::;;;;;;;;;;;'''';''''''+++++
,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.....,,,....,,,,,,,,,,......,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@+;;:::,,,..............,,:::::,,,:'#@@####@#++++#@#'+#+;+#+;,.....,,,,,,,,,,,,,,.........``.``..```.;'+++####+'''+;;;:::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::,,::,,,:::::::::,,,,,,,,,,,,,,,,,,,:::::::::::::,:::::::::::::::::::::::::::::;;;::
..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,..,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@#;;;::,,,...............,:::;:,:'#@@@@######++++###+'+#';;;;';:,..,,,,,,,,,,,,,,,.........``..```.;#@#++@##+++'+#+'';:::::::::::::::::::::::::::::::::::::::,::::::::::::,,:::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::
.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@#';;::,,,...............,,::::;+#@@#@##+'++++#++#+##''##+#''';;:,...,,,,,,,,,,,,,........`.``.`.:+#@#####++++'''+''';:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::,,:::::::,,::,,,::::::::::::::::::::::::::::::::::::;:
......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,+@@@@@@';;:::,,...............,,::::'@#@####+#++++';;+++'+'++#';;;;:;;::,,,,,,,,,,,:,,,........``.``.'@@##@###+#+'''''+''+;:::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::,,,::
.......,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,:,,;@@@@@@+;;::,,,,.............,,,::::;###@###+++''';;';;+':;;;;++'+'++;::,,,,,,,,,::::,,,.......``.`.+########+'+'''''+'''''::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,
.....,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,;@@@@@@#;;;::,,,.............,,,::::;#####+++''''''';;;';;:;:,;''';;;;';;::,,,,,,::::,,,.........`.+@######+'''';;'''';;''';:::::::::::::::::::::::::::::::::::::::::,,:::::::::::::,::::::::::,::::::::,,:::,,:::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,
,,,,,,,..,,.......,.,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,:::,,:@@@@@@#;;;::,,,,............,,,:::::####+'''';';::,:;;:,;;,,::,;''';;;;;:::,,,,::::::,,,.......`.+@@#@++'+++'''';;;;;;;;;';:::::::::::::::::::::::::::::::::::::::::,,::::::::,:::::::,:::::::,,,:::::::::::::::::::::::::::::,:::::::::::::,,,::::::::::::,,::::,,,,,,,:
,,,,,,,,,,,...............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,:,:#@@@@@@';;::,,,,............,,,:::::+@####';'';;:::;::;:,:,,,.:;::::';:;;:::,::::::::,,,,.......'@@###+##+';;;;;::::::::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::,,:::::::::::::::::::::::::::::::::::::,:,,,::,,:::::::::::::,,:::::::,,,,:
::::,:,,,,,...,...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::+@@@@@@';;::,,,,............,,,:::::'###++''+';';;:';;:,,,..,.,,.:;;';;;:::::::::::::,,,,......;@#######+''';;::::,,,,:::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::,,::::::::::::::::::,::::::,,,,,:::::::::::,,,,::::::::,,,,,,,,
:::::::::::,,,,,,,,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,::::'@@@@#@+;;::,,,,............,,,:::::;###+';'';;;;:;;:;::,.,....,,,.,;;:;'';;:::::::::,,,,,....:#@@@#@#++''';,.,,,,..,,:::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::,,,,:::,,:::::::::::::::,,,,,,:::,,,,,,,:::,:::::::,,::,:::::::,,,,,,,,
;;;;;::::;::::::::::::,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,,:;@@@@@@#;;::,,,,,...........,,,:::::;###''';;;';;:;;;::,,.....``.,,,,::::'':::::::::::,,,,..,:@@#@@##++';;:,,,..,....,,,:::;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,:::::::::::::,,,:,,,:::,,,,,,,:::,:::::::::::::::::::,,,,,,,,
';;;;;''''';;;';;;;';;;;;;;;::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::,,,,,:::::::::,,::@@@@@@#;;;::,,,,...........,,,,:::::+#+''';;'':,;;;;::,,,.`.....``..::;;;;;;:::::::::,,,,,,;#@@@###+++;;::,..``.```....::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,:::::::::::::::::::,::::::::::::::::::::::,:::::::::::::::,,,,
';;'''++++++++++++++++'+++++';'';;;;;;;:;;;;:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,::,,::::,::::::::::::::,:::::+@#@@@#;;:::,,,,,..........,,,,:::::'+#+''';'';;;:;::,,,.`...`..`` .,,:;;:';;;::;:::,,,,,:;+@@@@##+'+';:,..``````````.,,,::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
''''''''++++++++++++++++'++''''''';;';;;;;;;::::::::,,:::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::::::::::::::::::::,:::,:'@@#@@@';:::,,,,,..........,,,,:::::++'+';''';;;;::::::,,......````...,,;;';;;;::::,,,,:;'++##@###+'';;::,.`````````.,,,::;';::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'''''';''';'''''''''''';;;;;;;;'';;;;;;;;;;;;;;;:::::::;:::::::::::::::::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,::::::::,::::,,:::::::::::::::#@#@@@';;::,,,,,..........,,,,:::::+#+;'';';;::;;:::::,,,......`````.,,:;'';'';;::::;;;'+####@#++'';;::,....```````..,::::;'::::::::::::::::::::::::::::::::::::::::,::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;::::::::::::::
''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,:::::::::::::::::::::::::::::,'@@@@@+;:::,,,,,,.........,,,,:::::'#++''+'';:;;::::::,,,,``...``````,,:::;;';;;;;;;'''''+''+++''';:::,,..`````````..,:::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:::
;;;;;;;;;;;;;;;;;;;;;;;;''';;;';;;;;;;;;;;;;'''''''''''';;;;;;'';;;;;';;;;;;;::::::::,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,::::::::,::::::::::::::::::::::::::::+@@@@+;:::,,,,,,.........,,,,:::::'+''';;;';;;:::::::,,,.....`..` ```.,:;;;;''';;;;;;'''+'+''+'';:::,,,..``.``````.,::::::':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::,,,::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;'''';;;;;;;;;;;;''''''''''''++'''''''''''''''''';;;''';:;;;;::::::::::,,,,,,,,,,,:,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,.,,,,,,,.,,,,,,,,:,,::::::,,,:,,::::::::::::::::::::::::+@@@#;::::,,,,,.........,,,,:::::;++'''''';;;:::::,,,,..`......`````..,:;;;+';'';;;''''''';''';;:::,,..`````````,,:::::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:;;;;;;;;;;;;;;:;;;;;;;;;;:;;;:,,,::::,,,,,,,::,..............,.........
''''''''''';;;;;;;''''''';''';;''''''''''''''''''''''''''''''''++++'+++'''''';;;;;;;;;;;;;;;;:;:::::::::::::;::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,:::,,..,,,,,,,,,,,,,::,,,,,,,::,,,,,,::::,,::::::::::::::::::;+#@#;;:::,,,,,.......,,,,,,:::::;'+'''''';;;::,,::,,,,.`.....`.`````.,::;'+;;'''';'''';'''';;;:::,,,.`````````.,,::::::;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::;::::::;;:..,,,,,,,,,.,,,,......................``.
''';;'''''';;;;'';;;;;''''''';''''''''''''''''''''''''''''''''''''+'''''''''''''''''''''''''''''''';;;;;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,::::::::::,,::::::::::::::::::::;'+;;:::,,,,,......,,,,,,,:::::'+'''';''::;:,:::,,,,..``.```````` `.,:;;'';'+'+'';;;'';';;;;;:::,,.````````..,,:::;:,:;;;:::::::::::::::::::::::::::::::;;;;;::;::::;;;;;;;;;;;;;;::;;;:;;;::::::::::::::::::::,,,,,,,,,:,...,.....................................
''';;'''''''''''';;;;;;'';;''''';;''';;;;;;;;;;;;';'';'''''''''''''''''''''''++''''+''+++++++++++++++''''';;';:::;;:::::::,:::,,,,,,,,,,,,,,,,,..,,,,,,,,,,,:::,,,,,,,,,:,,,,::::::::::::::::::::::::::::::::::::;;:::,,,,,.......,,,,,,:::::;''++';'';;;::::,,,,,.....`````.`````,,:;;;''+'''''';;'';;;;;;:::,,....`.,...,:;:::::,:::;;;;;:::::::::::::::::::::::::::;;;;;:;::::::::::::::::::,,,,,,,,,,,,,,,,,,................................................................
'''''''''''''''''''''';;;;;;''''';;;;;;''''';;'''''''''''''''''''''''''''''''''''''''+++++++++++++''''''''''';;;;;;;;;:::::::;:,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::;;:::,,,,,........,,,,,:::::;+''''';;;;:;:::::,,,......``.``````.,,:;;'+'++'''''';;';;';;;:::,,,,...,,,,,::::;::::;:;''''';;''''''';;;;;;;;;;;;;;;;;::::::::::,,,,,,,...........................................................................................
'''''''''''''''''''++';;;;;;;''';;;;;;'''''''''''''''''''''''''''''''''''''';''''''''''';''';'''''''';'''''';;;;;;;;;;;;;;;;;;;;:;;;;;:::::::::::::,,,,,,,,,,,,,,,,..,:::::;;::::::::::::::::::::::::::::::::::::;;;:::,,,,.........,,,,,::::;++'+'';;;;:;;::::,,,,,.`..`````....,,,;;;'+++#++++'';;';;';;;:::,,,,.,,,,,::;::;;::::;;'++++'''++++''+'';''''';;;;;;:;;:.,,,,,,,,.............```..````.````````````````````````...................................................
''''''''''''''''++'++''''''';;';;;'''''';;'''''''''''''''''''''''''''''''''';'''''''''''''';;''';''';;'';;;'''''';'''''''''''+''''+''';;;;;;;';;:::::::::,,,,,,,,,::,,::,:;;;;::::;;::;::::::::::::::::::::::::::;;;:::,,,,.........,,,,,::::;+'++'';;;;::;::::,,,,...`...`..`...,,,:;;''+#++##+'::;';'';::::::,,,,,,,::;:;;;::::::';';;;;;;;;;;;;;;;::::::::::::,,::,...........................................................................................................
''''''''''''''+'++'++'''''''';';;''''''';;'''';''''''''''''''''''''''''''''''''';;''';;''''';;'';''';;;;;;;'''''''''+++++++++++++++++''''''''++;:;;;;;;;;:,,,,,,,:'';:::::;;;;;;;;;;;;;;::::::::::::::;;;::::::::;;;:::,,,,..........,,,,::::;#++''';;:;;;;:,::,,,....````````....,::;'+'+##+'#+';;'':;';;;;;:::::,,,:::;;;;:;;:;;'';:,,,,,,,,,,,,,,,,.,,...........,...................................................................................................,........
''''''''''''''''''''''''''''''''''''''''''''''';'''''''''''''''''''''''''''''''';;;'''''';;''''';;';;;;';;'''''''''''''''''+'''+++'++''++''''++;;;;;'''';::::::,::;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;::::;;:::,,,,..........,,,,::::;#+++';;;;;:;;:,::,:,...```` ````..,,,;;;''++###+##+'+;;;;';;;;:;:::::,:::;';;;;;':''''',``````````````.``..`````.......................................................................................................,...........
''+++'''''''''''''''''''''''+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''';;;;;;'''''''''''''''''';;;'''';;''';''''''''''''';;''''''';;;;;;:::::;;++'';;;;;;;;;;;;;;;;;::::::::::;;;::;;;::;;:;;;::,,,,..........,,,,::::;''++';;;;:::::,:,,,,..`````````..,,,,;''''+@####+++';;';;';;;::;::::::::;;;;';;'''+'+';```````````````````````````````.................................................................................................,...........
+++++'''''''''''''''''''''''+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''''''''''++'''++'+'++++'''+';;;''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:;;;;;;;::,,,,..........,,,,:::::#+++''';;:;::::,,,,,..``` `````...,:::;'++'##+#@+++''';;+';';;;;;;;:::;;;;;;'''''+++#+;`````````....``.......`.....................................................................................................................
+++++''++''''''++''''''''''''''''''''''''''''''''++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++++++++++#+####++++++''''''''''''''''''''''''++';;;;;;;;;;;;;;;;;;;;:::,,,,.........,,,,,::::++++'';::;::::,,,.,,.`````````..,,::;'''+#++#@##++++++''++''';;;;;;;;;;;;''''''+++###+,............................................................................................................................................
++'+++++++++++++++++++++++++'''++''''+'+++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''';;'''';';;'''';'+++'++++++++++###+##++++++++++++++++++#++++++++##+''+++'''+++++++#+';;:::,,,,...,.....,,,,,::::++++#';;;;:::::,,,,,.....`.....,,,::;''##@###@@@@###+#+###+''''';';;;;''';''++++++###;.............................................................................................................................................
+'''++++++++++++++++++++++++''++'''++++++++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;'+++'+++++++++++++++++++++++++++++++##++##++##++##++++++++++++++''++;;;:::,,,,...,,....,,,,,::::+####''';;;;:;::,,,,,,......`.,,::;'+''+##@@@@@@####+###@#+''''';;;;;;''''+''+++++##+,`............................................................................................................................................
+''+++++'''++++''''++'''''''''++''++''+++++'''''+++++''''''''''''''''''''++'''''''''''''''''''''''''''''''''''''''''''''';;'''''''''++++++++++++++++++++#++++##+'''++++++++#++++++++++++++#######+++#++++++';:,,,,:;;:::,,,,...,,....,,,,,::::+#@@#+''';;;;:::::,,,:,......,::,;'+######@@##@@@##@###@@@#++++''+';''''''++++######:..............................................................................................................................................
++++++++''''++'++''++'''+'''++++++'''+++++'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'++++++'''++++''++++++++++++++#####+++####';++++'''';;;;;;:,,:::::::::::::::,,:,,:::::::::::::::::::,,,,.`.``,;;:::,,,,,,,,,....,,,,,::::#@##+#+#+;;;;::;;:,::::,,,.,,,,;'+#+#@@@@@##@@@@@++#@##@#@####+'++''''+++'+##++##@#;...............................................................................................................................................
+++++++'++++++++++++++++++''++++++''++'+++'++##############################################################################################+###;;'';;;;::,,,,,,.``.........```.```````````````````````````````````,;;:::,,,,,,,,,.,,,,,,,,:::;+########'';;;;;::::::::,,::;;';++##@@@@@@@@@@###@@@@@@@@@@@@####+++'''+#+'###+++#;................................................................................................................................................
+++++++++++++++++++++++++++++++++++++++++++++#################################################################################++++++++++'''''+':::::,,,,.......```````````````````````````````````````````````.`...;;:::,,,,,,,,,,,,,,,,,,:::;'#@####+#+';';;;::::;;::,;;';'+'+#@@##@@@@@@@@@@##@@@@@@@@@@@###@###+++++#++#####'.................................................................................................................................................
++++++++++++''+++++++++++++++++++++++#+####+++++++++++++++++++++##+++##+++###+++++++++++++++++++++++'''''''''''''''''';;;;;;;;;::;;;:::;:::::::,,,,,..............................`````````...``````...`````.......;;:::,,,,,,,,,,,,,,,,,,:::;:'#@@@@@@##++++;';;;;;;;;''';'+@##@@@@@@@@@###########@@@@@@@@#@#@######+@##@###+..................................................................................................................................................
++++++++++++++++++++++++++##################';'++'++''''''''';;'';;;;;;;;;;;;::::::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,..,,.........................................................................................:;:::,,,,,,,,,,,,,,,,,,:::;;;'#@@#@##@###+++''+''+;;''+#+#@@@@@@@@@##++++###++++###@@@@@@@@@@##@@@@##@#@@#+:..................................................................................................................................................
##########################################@#';''';;;;::::::;::::::::,,,,,,,,,....,........```````````````````````````````````````````````..``......................................................................:;:::,,,,,,,,,,,,,,,,,,,::;;;;'#@@@@######+'++';+'''+##@#@@@@@@@@#+++++++++++++++++##@@@@##@@@@@@@@@#@###++,..................................................................................................................................................
##################+##++++++++++++++++'''''''::::::::,,,,,,,,,,,,,,....................````````````````````````````````````````````````````````.....................................................................,;:::,,,,,,,,,,,,,,,,,,,::;;;;''+#@@@#@@@@#@#####+##+####@##@@#++''''''''''+++++++++++#@@@@#@@@##@@##@##++'...................................................................................................................................................
'''''''''';;;;;;;;;;;;;;;;;;;;;;;;::::::,,::,,,,,,,,,,....,,...........................`......``...`.``............................................................................................................,;;::,,,,,,,,,,,,,,,,,,,:::;;;;''++#@@@##@@@#@@@#@@###@##@@@#+'''''''';;;;''''''++++++++##@@@@@@@@@@##++++:..................................................................................................................................................,
,,,,,,,,,,,.........,..............................................................................................................................................................................................,;;::,,,,,,,,,,,,,,,,,,,:::;:;;;''''+##@@@@@@@@@@@@@@@@@@#+'''''';;;;;;:;;;;;;;''''+++++++####@@@@#@#++++',................................................................................................................................................,,,
```````````````````````````````````````````.........................................................................................................................................................................;;::,,,,,,,,,,,,,,,,,,,:::;::;;;''''''+##@@@@@@@@@####+''''';;;;:::::::::::::;;;;'''+++++++#####@##++++'',...................................................................................................................................................
````````````````````````````````````````````........................................................................................................................................................................:;::::,,,,,,,,,,,,,,,,,::::::;;;;;';''''''''++++++''''';;;;;;;:::::,,,,,,,,,,:::;;;'''++++#########++''';....................................................................................................................................................
.........`..`.......................................................................................................................................................................................................:;;::::,,,,,,,,,,,,,,,,:::::::;;;;;;;;;;''';;;';;''';;;;;;::::::,,,,,,,,,,,,,,,:::;;;''+++########+++'';:....................................................................................................................................................
.......................................,............................................................................................................................................................................,;;:::::,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;;;;;;;;;;;::::::,,,,,,,,......,,,,,,:::;;''++++###@#+++'';;:....................................................................................................................................................
....................................................................................................................................................................................................................,;;:::::,,,,,,,,,,,,,,,,::::::::::::::::;;;;;;;;;;;;;::::::,,,,,,,,..........,,,,,:::;;''+++#####++'';;:,....................................................................................................................................................
....................................................................................................................................................................................................................,;;;::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::,,,,,,,,,.............,,,,,::;;''+++#+##++'';;;:,....................................................................................................................................................
.....................................................................................................................................................................................................................;;;:::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::,,,,,,,,,...............,,,,:::;''+++++##++'';;::,....................................................................................................................................................
.....................................................................................................................................................................................................................:;;:::::,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::,,,,,,,,,................,,,,::;;''++++##++'';;:::,....................................................................................................................................................
.....................................................................................................................................................................................................................:;;:::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,,,,,,,,..................,,,::;;''++++##++'';;:::,....................................................................................................................................................
.....................................................................................................................................................................................................................,;;::::::,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,,,,,,,,...................,,::;;'++++##+''';;;:::,....................................................................................................................................................
.....................................................................................................................................................................................................................,;;::::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::,:,,,,,,,,,....................,,::;''++++##+''';;::::.....................................................................................................................................................
................................................................................................................,,,,.,......,.........................................................................................;;::::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::,,,,,,,,,...................,,,::;''++###++''';;:::,,....................................................................................................................................................
.............................................................................................................................................................................................................,........:;;:::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::,,,,,,,,,...................,,,::;''+++##++''';;::,,.....................................................................................................................................................
.......................................................................................................................................................................................................,:;''++;;;;::,,:;;;::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::::,,,,,,,,,,...................,,,::;'++++##++'';;:::,,.....................................................................................................................................................
......,..,,,,,,,,,,,......,,,,,,,,,,,,..........................................................................................................................................................,,::;+###@@@##';;;;;;;:;;;;::::,,,,,,,,,,,,,,,,,:::::::::::::::::::::::,,,,,,,,,,...................,,,:;''+++##++'';;;::,,,.....................................................................................................................................................
..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......................................................................................................................................................,;'++#@@@@##@@###';;;;;;;;;;;;::::,,,,,,,,,,,,,,,,,:::::::::::::::::::::::,,,,,,,,,,...................,,::;''+++##++'';;:::,,,.....................................................................................................................................................
..,,.................,,,..................................................................................................................................................................,::'+##+#@@@####@###;;;;;;;;;;;;;::::,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,...................,,::;'+++##++'';;;:::,,,,....................................................................................................................................................
........................................................................................................................................................................................,::'#++##'#@@#####@###;;:;:;;;::;;;:::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,.................,,,:;''+++##+''';;:::,,,,,....................................................................................................................................................
.....................................,...............................................................................................................................................,:;;:;'#++#@#@@#@@#######;:::::::::;;;;::::,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,................,,,::;''+++#++'';;;:::,,,,,....................................................................................................................................................
..................................,................................................................................................................................................,:;;;;;';;'+#@#@@@@@@#####+;::::::::::;;;:::,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,..............,,,,::''+++##+'';;;:::,,,,,,....................................................................................................................................................
.................................................................................................................................................................................,::;';,:::::;'+###@@#@#######;:::::::::::;;:::,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,............,,,,::;''++##+''';;::::,,,,,,....................................................................................................................................................
.....................................................................................................................................................................,:;;;:,,...;+;;';:,,,,,::;'###@#@@#######':::::::::::;;::::,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,,.........,,,,,::;;'+++##+'';;;:::,,,,,,,....................................................................................................................................................
....................................................................................................................................................................,'''''##+';'++'';:::,..,,:;''+#@@@#@######':::,,,::::::;::::,,,,,,,,,,,,...,,,,,,:::::::::::::::::::::,,,,,,,,,,,,,,.....,,,,,::;;''++##+''';;::::,,,,,,,....................................................................................................................................................
...................................................................................................................................................................,:;';;;'+####++';:::,,....,:;;;+@@@#@#+####+:::,,,,:::::::::,,,,,,,,,,,,.....,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,::;;'''++#++''';;:::,,,,,,,,....................................................................................................................................................
...................................................................................................................................................................::::;::::'##+'';::::,.......:';'@@@@##+####+:::,,,,,,::::::::,,,,,,,,,,,......,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,::;;;''++##+''';;;:::,,,,,,,,....................................................................................................................................................
..................................................................................................................................................................,;:,,,:,.,:'##+''';,,:,,...,.,;;+@@@@########::,,,,,,,,,,:::::,,,,,,,,..........,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,::;;;'''++#''''';;:::,,,,,,,,,....................................................................................................................................................
..................................................................................................................................................................:';;;:,.,::;##+'+':,,:,,..`.,:;;+@#@@@@#++###::,,,,,,,,,,,::::,,,,,,,............,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,:::;;;''''+#+'''';;;:::,,,,,,,.,,...................................................................................................................................................
..................................................................................................................................................................''+';;,..:;'+@@#;,;;:,,,..`..,;:;@@@@@##+####;,,,,,,,,,,,,,:::,,,,,,..............,,,,,::::::::::::::::::::::::,,,,,,,,,,::::;;'''''+#+''''';;:::,,,,,,,.,,....................................................................................................................................................
..................................................................................................................................................................+++';:..,,:;'+##':;':,,,..,,:,;;'@@@@@##++###',:,,,,,,,,,,,,:::,,,,................,,,,::::::::::::::::::::::::::::,,,:::::;;;'''''+#+''''';;;:::,,,,,,,.,,,...................................................................................................................................................
.................................................................................................................................................................,@@#';:,..,:;;+##+;;;:,,,,.,:::;'+@#@@##@++###',:,,,,,,,,,,,,,::,,,,.................,,,,:::::::::::::::::::::::::::::::::;;;;''''''#+'''''';;;::,,,,,..,.,,,...................................................................................................................................................
.................................................................................................................................................................;@@@#;;:. ,;''+##+'';::,.,....,:;'@@@@###++###+::,,,,,,,,,,,,,,:,,,,..................,,,,::::::::::::::::::::::::::::::;;;;'''''''#+''''''';;:::,,,,,...,,,,...................................................................................................................................................
..............................................................................................................................................................,:;###@#;;,.`,:;;+@#';';;:,.,..`..,::#@@#@###+###+:,,,,,,,,,,,,,,,,,,,,,.................,,,,,:::::::::::::::::::::::::;;;;;;''''''''#+''''''';;;:::,,,,,..,,,,,...................................................................................................................................................
............................................................................................................................................................,:;'++;'+++;...,..:'##+'''';:,,......:;+@@@@###++###;,,,,,..,,.,,,,.,,,,,,..................,,,,::::::::::::::::::;;;;;;;;;;;'''''''''++'''''''';;;::,,,,,,..,,,,,...................................................................................................................................................
...........................................................................................................................................................,:;;;':,,:;+;.`..,,:'####'''',::..,.,:;;+@@@@###+++##':,,,,...........,,,,,...................,,,,::::::::::::::;;;;;;;;;;;;;'''''++'++'''''''';;;;:::,,,,,..,,,,,,...................................................................................................................................................
...........................................................................................................................................................:;;;;;.,..;'',.`.::;;+#@#'''',::,,..,::;+@@@@@###++##+::,,,,...........,,,,,..................,,,,,:::::;;;:::::;;;;;;;;;;;''''''++'++;;''''';;;;;;:::,,,,...,,,,,,...................................................................................................................................................
..........................................................................................................................................................,'+:,+;,;,.;+':....:;:+@@#+#+';:::.`..,:;'@@######'####::,,,,.............,,,...................,,,,,::::;;;;:::;;;;;;;;'''''''''++'+#;,;;'''';;;;;:::,,,,,...,,,,,:...................................................................................................................................................
..........................................................................................................................................................,+#+::;;:...,;,...`,::++##+'+'::,,,,,::'+#@#@#####+####;::,,,..............,,,..................,,,,,:::::;;;;:::;;;;;''''''''''+''++;,:;;''';;;;;;:::,,,,,....,,,::...................................................................................................................................................
.........................................................................................................................................................,;#@@+.;;,```,;,`....,;;;#@#'++';::::,:;;'+@@@#@########'::,,,...............,,...................,,,,,:::::;;;;;;:;;;'''''''''''''+':,,::''';;;;;;:::,,,,,....,,,,::...................................................................................................................................................
.......................................................................................................................................................,:''+@@#;::;..`,;,...,.,:;;#@#+++'';::,.::;;'#@@######'####:,,,,,...............,,..................,,,,,:::::;;;;;;;;;''++++'''''''+':,:::;;;;;;;;;;:::,,,,,....,,,,::...................................................................................................................................................
.....................................................................................................................................................,,,,,:'#+@+:;':..,::,..,,,,;'+#@+';'';:,,,,:''+#@@@@####+####;,,,,,................,,..................,,,,,:::::;;;;;''+++++++''''''+':,::,:;;;;;;;;;:::,,,,,,....,,,,::...................................................................................................................................................
....................................................................................................................................................,:;:,,,;'+@+;';:.,:::,....,,:;'#@+';;;::,,.,:;'+#@@@####@++###'::,,,................,,,.................,,,,,,:::::;;;;'+++++++++''''+':,:,,,:;;;;;;;;;:::,,,,,,....,,,,::...................................................................................................................................................
....................................................................................................................................................:;;:,,,::'@#+;:,,,.:,.....,:;;'#@#++;::;;:,:;;'++@@@@##+######+::,,,,................,,,.................,,,,,:::::;;;;;'#+++++++'''#',,:,:,,:;;;;;;;;::::,,,,,.....,,,,::...................................................................................................................................................
.................................................................................................................................................,..:;::,,.:::+@+;,:;::;:,,...,:;;;+#@#++;;':,,:;;+++@@@@#####+####;::,,,.................,,,.................,,,,,::::;;;;;;'+++++++++#':,,,:,:,:;;;;;;;;:::,,,,,,.....,,,,:,...................................................................................................................................................
....................................................................................................................................................:';,:,.,:::##';;;;';;,,,...,:::;'#@#+';;:,,,,:+++#@@@#####+####+::,,,,.................,,,,,,.............,,,,,::::::;;;;;+++######+:,:,,:,,,:;;;;;;;;:::,,,,,,.....,,,:::...................................................................................................................................................
...................................................................................................................................................,'##'',`,,:;#@+';;;:::,,,...,,,:;;+@#+';:;:::::':'#@@@@####++####:::,,,.................,,,,,,,,............,,,,,:::::;;;;;+++##+####',,,:,,,,:;;;;;;;::::,,,,,,.....,,,:::...................................................................................................................................................
....................................................................................................................................................+@@@#:,,.,;#@+;;'':::,..,.,,,::''+@@#+';;;::;;;:'+@@#@#####+####'::,,,,.................,,,,,,,,,..........,,,,,:::::;;;:'##+##+#####;,::,,,::;;;;;:::::,,,,,,,.....,,,:::...................................................................................................................................................
.............................................................................................,......................................................'@#@'::,..:+#+';;';;::,.,.,.,,,;'+#@#+'';:,:::;''+@@@@#####+####+:::,,,,................,,,,,,,,,,,........,,,,,::::::;;;+##+#########:,::,,:;;;;;;:::::,,,,,,......,,,:::...................................................................................................................................................
....................................................................................................................................................;@@':::,,.,+@#';''':::,....,:,.,;''##+;;;;::,.;''+#@@@@####+#####;::,,,,,...............,,,:,,,,,,,,,.......,,,,,:::::::'##+#++######@+,::,,:;;;;;::::::,,,,,,,.....,,,:::...................................................................................................................................................
.................................................................................................................................................,..:@+::;::,,,;#+::'';:,,.,....::,,:;+#@#+;:'':;;;''+#@@@@####++#+##+:::,,,,.............,.,,,:::,,,,,,,,,,....,,,,,::::::;+#++++++#######',::,:;;;;;:::::,,,,,,,,.....,,,:::...................................................................................................................................................
.........................................................................................................................................,...,,...,.,'::;:::.,.:##;;+';;,,:,,,..,:::;'#@@@@+:;';'';';+#@@@@@##@++#####;::,,,,,,...........,,,,,,:::::,,,,,,,,,..,,,,,::::::'#++++++++#######:,,,:;;;;;:::::,,,,,,,,.....,,,::,...................................................................................................................................................
.........,...........................,..................................................................................................,,,.,,......,:;;:;::,.,;#@#+'';':::,,..,,:,:;;+####+;';:;;:;''+#@@@@####+#####+:::,,,,,,.........,,,,,,,::::::,,,,,,,,,.,,,,,:::::;##+##++++++######+,,,:;;;;;:::::,,,,,,,,....,,,,::,...................................................................................................................................................
.........,,........................,,..............................................................................................................,:;;:::;:...:+@+''+::':,.....,,,:;:;'++##;::::,;;'''#@@@@#####+##+##;:::,,,,,,......,,,,,,,,,::::::::,,,,,,,,,,,,,::::;+#+++++++++++######;,,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
.........,,.......................................................................................................................................,:;;;;;;;;,..,'+':'+';;:,,,..,,,,:';'+++###;:,;:;;;:+#@#@@@####+#####+::,,,,,,,,,...,,.,,,:,,,,:::::::::,,,,,,,,,,,::::'####+++++++++###@###:,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
..,.............................,.........................................................................................................,,.....,:;;;;;::;;:.`,'+''#+#';,;:,,,,,;;;;;+#++++#+':;:;:;;#@@@@@@###########;:::,,,,,,,,,,,,,,,;:,,,,::::::::::,,,,,,,,,,:::;+####++++++++####@##@+,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
..........................................................................................................................................,,,....:;;:;;:::;';,.:'#+##+++;,;:,,:,,;;:::'+##+''#+:,,;:;'+@#@@@@@@@#++##'##+::::,,,,,,,,,,,,:;:,,::::::;:::::::::,,,,,,::::'###+++++++++++########:,'';;;::::,,,,,,,,....,,,,:::,...................................................................................................................................................
........................................................................................,,,.,,..................................................,:;::;;:;;;';,:;'+';++'';,::,.,,,,,:;:;''++''+'';,:,,;#@#@@@@@#@#++##+#+#+::::,,,,,,,,,,,::,,::::::::;;;:::::::,:,:::::'+#+#++++++++##+########',''';;::::,,,,,,,,,.,,,,,,:::,...................................................................................................................................................
........................................................................................,,,,,,.....................................,,..........,:;:;;:;:;::;:..:'++;'';;;:,.,......,::;'+'+#''+#+;:;::+###@@@@@#######++@+;:::,,,,,,,,,,::,,:::::::::;;;;;::::::::::::;+#+++++++++++++######@###:''';;::::,,,,,,,,,,,,,,,,:::....................................................................................................................................................
........................................................................................,......................................,..............,:;::;;:;::::;,,.,'++'+'+';;;,,,,..,,:::'+#+##''++#+;'';+##@@@@#@###+########::::,,,,,,,,:;;::::::;;;:;;;;;;;;:::::::::;'++++##++++++++##########@+''';;::::,,,,,,,,,,,,,,,,:::.................................,,.................................................................................................................
...................................................................,,.........,......,,,.......................................,,.............:;::::::;:::::,:,.+#++++#':+;:,,:,.,,:;;''+##++;;'+#'';+'#@@@@@@#@#++##+#####+::::,,,,,,,,;;:::;;;;;;;;;;;;;;;;;::::::;'+'+###+##++++++##++#+#####@+'';;::::,,,,,,,,,,,,,,,::::.................................,,,........,...................................................................,...................................
...................................................................,.................,,......................................,............,..::::::::::::::;;::`'@++'++;;':,,,.,,,,,::;'+'##+':;''+';''+@@@@@#@@#####+######'::::,,,,:::::::;;;;;;;;;;;;;;;;;;;;;;:;'+'+#######+++++++++++++##@#@#'';;::::,,,,,,,,,,,,,,,::::,........................................,...................................,,.....................................................................
............................................................................................................................................,::::::::::;:::;;,,.;+;;;'+;;;:,,.`,,..,:,;'';+##';:;;++';+####@@@@@############+;::::,::::::::;;;;;;'';;;;;;;;;;;;;;;;''++++#####+++++++'+++#++######+';;:::::,,,,,,,,,,,,,,::::,...................................................................................................................................................
...........................................................................,,.............,,.......................,,......................,::::::::::::::::;,`,;+';:'#';::::.,,,,,,::;+'++#@++;;;'+#;'+##@@@@@##############+::::::::::::;;;;;;'''';;;;;;;;;;;;;;''++++###++++##+++#+'++#+########';;;::::,,,,,,,,,,,,,,::::,...................................................................................................................................................
...........................................................................,,......................................,,......................,::::::::::::::::;:,,:##';+++;:;;:,,,.,,::;'+++++##+'';:;'''+#@@@@@@##@#######@####':::::::::;;;;;;;'''''';;;;;;;;;;;;'''++++###++++++++##+++++'++######+';;::::,,,,,,,,,,,,,,::::..........................................................................,,........................................................................
..........................................................................,...............................................................,::::::::::::::::;;::.:##''+++';;:,,,.,,.,;:''+';+;#+'';:,:+++#@@#@@@@@@##@@@########+;:;::::;;;;;;;';''''''';;'';;;;;;'''++#+##+++#+++'+++'++++'+++######+;;;::::,,,,,,,,,,,,:::::........................................,..................................,...................................,,...................................
..........................................................................,..............................................................,::::::::::::::::::::..;##';+'+';,,,...,,,,:::;;''+'#++''';'#####@@@@@@@@@@@@###@@@@###+;:;::;;;;;;;;;;''''''';;'''';;;;'+++##+++###+++++++''''+++++++######';;::::,,,,,,,,,,,,:::::........................................,.,,..................................................................,,,...................................
........................................................................................................................................,,::::::::::::::::::,:,.;##;;#'++;,::,...,::::;''+++#@##+++'++@#@@#@@@@@@@####@##@#@#####':;;;;;;;;;;;;;;;''''''''+++'''''+#++++++###++++##+'''';'++++++++###+;;::::,,,,,,,,,,,,:::::...............................,,,.........,.................................................................,,,,,..................................
........................................................................................................................................,::::::::::::::::::::::,:##''#++''::,,,.,,:,:;;;+++#+#++'++'''+#@###@@@@#@###@@@@@#@@#####+;:;;;:::::::;;;;;;''''+++++++++++++++++++++++++++''+'''+++'''+++###';;::::,,,,,,,,,,::::::.,,...........................,,...,,.......................................................................,,,..,.........,........................
.......................................................................,,..,,..........................................................,::::::::::::::::::::;::.:#+'''+'':::,.,,,,,,:::;++'++#+#+'+'''+@@###@@@@#@@@#@##@@#@@######+;;::::.,...::,:,,;:;'++++'++++++++####+++##++''''+#''+;'''''+++####';:::::,,,,,,,,,::::::.,.....................,,,,,,,,..............,....................................,,...............,,..............................................,
.......................................................................,,...,.....................,..........,........................,,::,,:,,:::::::::::::::..:##'++#+':::,.,,,.,::.:'+++'+#@@#+'+###@##@##@@@@@##@@#@@@@@@@######';,,:....`..,..`,;,:+++#+++###+++####+++++++'''''++''';;;'''+++####+;;::::,,,,,,,,:::::::..,,...............,,,,,::::,,.,,,......,...........................................................................................................
......................................................................................................................................,,:,,,,,,,,,,::::::::::...:##'+###+':,:::,.,,::,;'++#+++#@#++###@@#####@@#@@@@@@@@@####+++'';;;,,,,..```.``..`.,,,;'###+##########++++++++''+;'''';';;:;;''+++####';;::::,,,,,,,::::::,..,,,.............,:;;;;;;:,;;::,:,,.......................................,....................,...................................................
.....................................................................................................,...............................,,,,,,,,,,,,,,,:::::::::.,,;#@++##+'':,:,,,,,,,:::'+##+##+#@####@@@@###@@###@@@####++''';;::':::;::,,,.`..```````.`,:'######@@#####++++++++'++;'';;;;;;;;;'''++#####';:::::,,,,,:::::;;,...,,...,........,''+;,::,,,;;;;;:::,..........,,.........................,,....................,.......................,...........................
.....................................................................................................,...............................,,,,,,,,,,,,,,,,::,::::;:::;#@+####+;::,``,,.,,,::'++++#++#@####@@@@#####+#@###+++'''''';;;;;;;::;;:::,,..```````...,,;#####@@@#####+++''+++'';;;;'';;;;;;;;'''+####+;;::::::,,:::::;;:,.....,,,,.......,'###+:,,.`.;;;';::::,,.............................................................................................................
................................................................,...................................................................,,,,,,,,,,,,,,,,,,:::::::;,:'+#'+#+#';;:,..,,,,,,;;'+'+#####@@##@#@@####++++#+++'''+'''+'+''';'';;;;';;:::....``.`.,...,;##@@##@@####+++++'++';;;:;;;;;;;;;;''''++####';;::::::::::::;;:..,....,,,,......:+++++',.,..;;;;,,:::::,............................................................................................................
..............,,,,.................................................................................................................,,,,,,,,,,,,,,,,,,,,::::::;,:''+'++#+::;;:,:,,::,::;+++++#@###@@@@##@####+##''';;;;+++++++#+++++''+''+'';;;;;::,.......`,;;+#@@##@@@###++++'+';;;;;;::;;;;;;;;;''+++####';;::::::::::;;;:..,.......,.,,,..,;'++'+;.,..;;;,,,:::;;:,.......................................................................,...................................
..............,.........................................................................,..........................................,,,,,,,,,,,,,,,,,,,:,:::::';:'##++##+':;;,,,,.,:,:::''+++'++#+#@@@#+#@#'+###;';::;'+++##+''++++#+#++++++''''+''':,.,,,,``,,;'#@@@###@####+'''';';;;;::::;;;;;;;;''++####+;;;::::::::;;;;:............,..,..:++++';.,,.:;:.,,::;++':,,.............................,,..........................................................................
..................,.....................................................................,.........................................,,,,,,,,,,,,,,,,,,,,,:::::;;;.;##++##'+;,:,,,:,.,,,,,:;+##+'##+#@@@@####+++''';::;;'##+';:::::::;;;;;;''+++++++++;';';,...,::''#@@#@#@@@###''';;';;;;;;;;;;;;;;;;'''++####+;;;:::::;:;;;;,..............,,...;'++';.,,.:;..,::;+++#+;,..........,................,,.................,,.........................................................
...,,...................,.........................................................................................................,,,,,,,,,,,,,,,,,,,,,:::::::,,;'';'#+##;::,,,.,,:,,:;'++##+####@#@@#####+++'';::;;;''';:::::::::;;;:;:::;;;;++#####++';::;':,;;++@@@@#@####++''';;;;;;;;;;;;:;;;;;;'+++###+';;;::::;;;;;;,.,,,..,,,..........:+'+';.,,.;:.,:::+++##+';,........................................................................................................
...,,,...................,,......................................................,,..............................................,,,,,,,,,,,,,,,,,,,,,,:::::::,;;;;'##+#+';:,,,..::,::'+#+###@#@@###@@#@##++##+;;:';;;:::::::::::::;;;;;;;;;;;;;;'##@#++'+':;:,,.:;'#@@@#@##@##+''';'';;;;;;;;;;:::;'''++####+';;;;;;;;;;;:,,.,,,,,,,,........,.''++'.,,.;..:,:+++##+++':,,....................,,...............................................................................,
,.....,,,,................,.....................................,................,,,.............................................,,,,,,,,,,,,,,,,,,,,,,:::::;;'';+##@#++'+;:,,,,.,,,::;'++++#@@@@######@##+'+#';;:;::::::::::::::::;;;;;;;;;;;;;;;;;+###++;,:::,.:;:'+@@@@@@#@##+'''''';:;;;;;;:;::;''''+#####+';;;;;;;;;;,,,,,,,,.,,,........,.:''+'..,,:.,:,'++##+++''';,,,...................................................................................................,
,,.........,,................,..................................,.................,,,,....,.....................................,,,,,,,,,,,,,,,,,,,,,,,,::::''++'##+++'+'',,,,.,,..,::;'''++#@@#@@@##;'+;'':;;::;::::::::::::::::::;;;;;;;;;;;;;;;;;;;'###+'+'::::.,,.+@@##@@###+++''';;:;;:;;;:;;::;'''++#####'';;;;;;;;;,,,,,.,,....,,,,..,,..,''+',.,.,,,,;+###++:;+#+;;:,,........................................................,,,,....,,,................................
,,,........,,......................................................................,,......,........................,...........,,,,,,,,,,,,,,,,,,,,,,,,::::;:';'#+;'+++'';;;:::,:::::'++++++#@#@#@@#;++;;:,;;::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;'#@###''':,,,,,'#@#@#@@###++'';;';;;;;;;;;;::;;''+#####+'';;;;;;';,,,,,,,,,,,,,,,,,,,,...'+++,....,,:+###++:.;+##+;::,...,,,.....................................................,....,..................................
.,...,.......................................................,.................,,...........,....................,,,,,.........,,,,,,,,,,,....,,,,,,,,,:::::;;;:;'''++#+'++';:;,,;::;:''+#####@@######+++';;;::::::::::::::::::::::::::;;;;;;;;;;;;;;';;;;'#@@#+;:,::,.`,#@@@@@####++'''';;;;;;;;;;::;;;'++#####+''';'''':,,,,:,,,,,,,,,,,,,,....;+++:.,:,,,;###++,..'+#++;::,,..,,,,,,.,,,..................................,...........,.......................................
.....,,...............,......................................,.................,,......,...............,....,,..,,,,,,.........,,,,,,.........,,,,,,,,,:::::'+';;+++##++'';;:,,.,;,:;:;;''++##@#@#@###++#;;;::::::::::::::::::::::::::::;;;;;;;;;;;''';'';;;'##+';:;,.```:'@@@@@@###++'''';;';:;;;;;;:;;''+####@#+''';;::,,,,,,.,,,,.,,,,,,,,.,,.:';+::,,,::+###+,...'##++'::,,,.,,.,,........................................,..........,....,...................,,.............
....................,,,....,.............................,,.................,,,...............,........,.....,,.,...,..,..,...,,,,,,,..........,,,,,,,,:::::'#+''+#''+'++',,:,,.,,:,:::';;++####@@##+;''':,::::::::::::::::::::::::::::::;;;;;;;;;;;''''''';;;###+';::.`...'@@@@@@###+++''';';;;;;;;;;;;;+++###@#++';:,,,,,:,,,,,,,,,,,,,,,,,,.,.:+:'+:,.::'####,...,+#+++:,,,,,,.,..,...........................................................................................
,....,.....,,.........................................................................,......................,...,....,......,,,,,,,...........,,,,,,,,:::::+#''''+;;+''';:,.,;:,,:,:;'++###@########'';;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;''''';;';+##+'+':,,``:+@@@@@#####++'''';;;;;;;;;';;'++######++;:::::::::,,,,,,,,,,,,,,,,,,.:+;;;,,:;;####:..,.,###+',,...,;,..,............................................................................................
.............................,,..............,.....,,.................................,.....................,.........,.....,,,,,..............,,,,,,,,:::::+#:;''+++#+'+:;:,::::,;:;;;+##++#@@##@''++'';:::::::::::::::::::::::::::::::::::;;;;;;;;;;;''''''';;+###'';:;,:'#@@#@@@@####+++''';;;;;;;;;:;;'++####+++';::::::::,,,,,,,,,,,,,,,,,..,+';;:::+#++#;.....;##++;,,.`.:;:...............................................................................................
.....................,........,,............................................,,..............................................,,,,................,,,,,,,:::::##';+++####++;;;::::::;;;:''''+'#@#@@#''+::;;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;'''''''';;'##+'':;::;#@@###@@#####++';'';;;;;;;;;;;;'++++#++'';;:::::,,,,,,,,,,,,,,,,,,.,.,+'';;;;'''+'......'##++:,,.`:;:::..............................................................................................
........................,.......,,..........................................,,...........................,.................,,,,,...............,,,,,,,:::::;@#+'##+#++#+'':,:,,:,:;;;;';''+###'###+'':::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;''''''''';+@#++';;,;+@@@###@#@####+''++''';;;:;;;;;'''+++''';;;;:;;::,,,,,,,,,,,,,,,,,,,.,'';';''''++,...,.,+###:,,.`,:::;;,.............................................................................................
.......,...,............,,......,,.........................................................,...........,,,...,.............,,.,................,,,,,,,,::::;#+''+++++++'+',::,,,,,:;;';;+#########+;'';::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;''''''';+@###'';';+@@@###@@@####+++++'''';;;;;;;;''''''';'::;;;;;:,,,,,,,,,,,,,,,,,.,,.;#;''''++#,......'###+,.,`.;:;::,..............................................................................................
,,,,,,.,,,,,,...........................................................,..................,,.........,,,.................,,,..................,,,,,,,:::::;##;'+'++##'++',;::,,:::;:;''++####@@##':;:::::::::::::::::::,,,,::,:::::::::::::::::;;;;;;;;;;;;''''''';+@##+''':;#@@@#@@@@@@######++''''';;;;;;'''''''';:,:;;;;:,,,,,,,,,,,,,,,,,.,,.:#'''++##:..,,..:####:,.`.;;:,.`.,,,,..........................................................................................
,,,,,,..,,,,,.,,,,,...........,.........................................,..............,..............,...................,,,..................,,,,,,,:::::'@##+++####++;';:,,:::::;;''+#''+####++;::::::::::::::,,,,,,,,,,,,,,,::,::::::::::::::;;;;;;;;;;;'''''''';+@#+''''+##@##@@@@@@@########'''';;;;;;''''''''';:;;;;:,,,,,,,,,,,,,,,,,,,,,..;##'+##:.......+++#',...;:.`..,,,.,,.............................................,,.....,,,...................................
.........,,,..,,,,,,........,,,.........,....................,.....,,,.................................................,..,,.,.................,,,,,,::::;:;#@#+##+##+#+:::,,,::,:::;;''+'+++##';'';:::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;;;;;;;'''''''''#@#++++###@@@@@@@@@@@#@#####++++;;;;;;;++;;'+'';;;;;;:,,,,,,,,,,,,,,,,,,,..,.,'#+##:.,...,.:#+++::,.:.``,,,.,..,,,.,.........................,....,...........,,,,.,,,,,...................................
........,,,,,,,,,,,,.........,.....................................,,,...................................................,,....................,,,,,,::::;;;+#'++#++##+++:,:,.::::,,,;;'+##+###'''';:::::::::::::,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;;;;;;;'''''''''#@#+#++''+@@#@##@@#@#@######++''''''';'+''''';;:;;:;:,,,,,,,,,,,,,,,,,,.,,,..;+#+:.,.,.,..'#+#+;::.````..,....,:,...,,,.........................,...,::::,....,.,...,,....,,..............................
......,,.,,,,,,,,......,,.................,,....................,,.......................................................,,...................,,,,,,::::;;;'#+'++####@###'::,,:::::::;;'##+####'+':::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;;;;;;''''''''+@##+++;:;+#@@@#@@@@@@@@#####+++''''''';'++'';;::::::,,,,,,,,,,,,,,,,,,.,,,..;++;..,,....,#+'';:,:,.``````,::,,:,..,,,,.................:::;:;::::::;';;';::,,.,,,.,,,,,,,,,,.............................
....,,..,,,,,,,,,....,,,.......,,,,.....,...............................................................................,,....................,,,,,,::::;;;+@#+++##@###+''':::::::;:;;''++++#++'';::;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;'''''''+'#@@++''+';#@@###@#@@#@@@#####+++''''++''++'';;:::::,,,,,,,,,,,,,,,,,,,,,,,.,'++,,,.,.,..;#++';:,,:,.`.,;++#++';:...,,.,,...,..,,.......:;:;;''';''''''''''';;:,..,;;,.,,...,,..,,........................
,,...,....,,,,,,,,...,,.......,,..,,..................,,,..............................................................,,,...................,,,,,,,::::;;;+##++#@#####+;;;,:::,,;::':+'+##+++#';;;;;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;'''''++++@@##'++''+##@@@#@#@@@##@#####++++''#++++'';;:::::,,,,,,,,,,,,,,,,,,,,,,,,.:++;,,,,,,,.,'+++'';;::,:'#########';....,,.,,,,,,,,,......,.,,,:;:,,:'';;;;'''''';;::,;;:,,.,,..,,.,,,.......................
,,,.......,,,,,,,,........,,..,...........,,,....................,,,,,.......,.....,..................,,,..............,,....................,,,,,,,:::;;;;###+###@####+':,:,,:::;:;;'++++#++++'''::;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;'''''+++'#@@#++++++++##@@@@@@@@@########++''+''++'';::::::,,,,,,,,,,,,,,,,,,,,,,,.,;+',.,,,,,..,##++'''#''+###########+;...,......,,,,......,,:;,.::,,,,:';,,,,:;;;;;;;;;;;;;;,................................,,
,,,.....,,.,..,,.........,,,...............,,,...................,,,,,,,,,,,,,,,,,,,,...,,............,,,.....,........,....................,,,,,,,:::::;;;+#++#+#@#@@##+;,;:,::;;;';+'++''+#+'+';;;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;;;;;;''''+++++@###++++'''++###@@@@@@#@@@@@##++++'++++';;::::,,:,,,,,,,,,,,,,,,,,,,,,,.:'+;,.,,.,,.,;##+++''##########@####+;.,.,.............,,,,,;':,,....,:';,,,.,,:;;::::;;;;'';,............,,,,...............,,
,,,.,,,,,,......................,,..,,,,....,,,,...............,,,....,,,,,,,,,,,,,,,,.,,,............,,,,.........,,.,,....................,,,,,,,::::;;;'####@########;';;:,:::::;;;'++''++##+;;:;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;;;;;;;;;;''''+++++####+';'++++'@@#@#@@#@@@@@@@##+###++++'';;::::,,,,,,,,,,,,,,,,,,,,,,,,,,;++:.,,,,,,.,'##++'''''++####@@@@@#++;,,..,,,,........,,,,.,;;,.,....,'';,....,,:;;;;::::'+'';::,,,,,,,,,,,,,,...............,,
,,,,,,,,,,,.......,,.....,,,,,..,,,,,,,,,....,,,...............,,.....,,,,,,,,,,,,,,,,,,,,..,,......,,,,,.........,..,,,....................,,,,,,,:::;;;;'###+@@@@####+';::.,:,:::;::'++#@##@#+':;:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;;;;;'''++++++@@#+';'#+'++##@@#@@@@@@@@@@@##++##++'';;;::::,,,,,,,,,,,,,,,,,,,,,,,,.:'+',,,,,,,..:++++'+''++##@###+'';;;;':....,,,,.............,:;:....,.:'';,,...,.,,,,:;;;;+++'''';:,,,,,,,,,,,,,..,............,
,,,,,,,,,,,...,...,,.....,,........,,,,,...,,,,,...,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,..........,.,,,.,,....................,,,,,,,,:::;;;;'@#+####@@##+#+:,::,::::;';''#++@#+++';::::::::::::,,,,,,,,,,,,,,,,,,....,,,,,,,,,,,,,::::::::;;;;;;;;;;'''++++++#@#++''++'''+####@@@@@@@@@@####+#++''';;::::,,,,,,,,,,,,,,,,,,,,,,,,.,'++',..,,,.,,'+'+######+';:,,,...........,,,,.,,.,,...,:,,;':;';,..,.,;'';,,,,....,,,,:;'++++;:;'';:,,,,,,,...,,,............,..
..,,,,..,,,,,,,,..,,....,,....,,......,,..,,,.....,,,,,..,,.,,...,,,,,,,,,,,,,,.,,,,,,,,.,,,,,,....,...........,,,,..,,...................,,,,,,,,::::;;;;'@######@@@@+++;,::,:::;;;;''+#+#+;;+;;;::::::::::,,,,,,,,,,,,,,,,..........,,,,,,,,,,,::::::::;;;;;;;;;''''+++++#@@##+''+''+####@#@@@@@##@@####+++''';;;:::,,,,,,,,,,,,,,,,,,,,,,,,,,;++++';,.,,,:'+'++:::;:,,.........,,.......,,.,,,,,,,..,:'+++'++':,,..,;'';,,,,...,,,,:;'++'''';:;++;:,,,,.,,...,,,,.,..,,,,,,,..
,,,,,.,,,,,,,,,,,,......,,..,,,,,,.....,,,...............,..,,...,,,,,,,,,,,,,,,,.,,,,...,,,,,,,................,,,.,,,...................,,,,,,,,:::;;;;;+@#@##@@@@@@++'',,.,,,;;:::'''+++''+';;;::::::::::,,,,,,,,,,,,,,.............,,,,,,,,,,::::::::;;;;;;;;;''''++++++@@@#++++''#@@@@@#@@@@@@@@####++''';;;;;:::,,,,,,,,..,,,,,,,,,,,,,,.:+++++++;,.,:'';'++;,.....,,,,,,,...,......,,,,,,...,,,,..,'++++++'':,,,;';:,,,.,,.,,,;'++';::::;;''++'';:,,.,,..,,,..............
,,,,..,,,,,,,,,,,....,,,,....,.,,,......,....................,,,.,,,,.,,,,,,,,,,,,,,,,,......,,,,...............,,..,,,..................,,,,,,,,::::;;;;;+##@#@@@@@@##+;:.,,,:::::;;;'+#''###';;:::::::::::,,,,,,,,,,,,................,,,,,,,,,,::::::::;;;;;;;;''''++++#+#@@#+++';++##@#@@#@@@@@@##+#+'';;;;;;;::::,,,,,,,...,,,,,,,,,,,,,,:'#+;'++++'::+';:;+++,..,:'+++++'';:,.,....,,...,,....,,,,..,'+''++++';;;;';,,,,..,,,:;''';:,.,,,,,,:'+++'';:,,,,...,,,............
,,,,...,,,,,,,,,...,,,,,,....,......,,....,,....,.,,.,,,,.....,,,..,,.,,,,,,,,,,,,,,,,,,..,,,,,,,....,,,,.......,,.,,,,..................,,,,,,,::::;;;'''###@@@@@@@@#@+;;;:::,:::;;''++#++#++;;;:::::::::,,,,,,,,,,,,,..................,,,,,,,,,::::::::;;;;;;;;''''+++##+#@@#+''''+++###@@@@@@@#@##+++';;;;;;;:::::,,,,,,.....,,,,,,,,,,,,,'##',;++++++';:,,;+++;,;'+#+######+':....,...,,,,.........,,.,;'''+'++++'';:.,,,...,:;'';:,.,,,...,,,:'+++''':,,::,,,.,.,,.........
,,..,,,,,,,,,,,,..,,,,,,,,..,,,....,,,.,,,......,,,,,,,.......,,,..,,,,,,,,,,,,,,,,,,,,,...,,...........,,.........,,....................,,,,,,,::::;;;'''#@#@@#@@@@@@#+';;:,::;:;;;++++##++';;;;:::::::::,,,,,,,,,,,,...................,,,,,,,,,,::::::::;;;;;;;;'''++#####@@#+';+'+++#@#@@#@@@@###++++;;;;;:::::::,,,,,,,......,,,,::,,,,,;##+:.,'++++++;,,,:++++;;:'#++#+++++':,.,.,..,,,.,..,.....,,,.,,:;'+++'++++':..,,,,.,;;;';,........,,,;++''+++';;;'';:,,,,,,......,,
....,,,,,,,,,,,,,,,,,,.,,,,,,,,,..,,,.,,,,.......,.........,,,,,....,,,,,,,,,,,,.,,,,,,,,........,,......,,....,..,,,...................,,,,,,,,:::;;;'''+@@@@@#@@@@@@##';:,,,:;;::;'''###++';;::::::::::,,,,,,,,,,,,,....................,,,,,,,,,:::::::::;;;;;;;'''++#####@@@#+++''+@@@@#@@##@@###+++';;;;::::::::,,,,,,,......,,,,;;;;;;;+#+;,,,;++++++',.,:++++;::;+''++###+;.,.,,,,,,..,,,.,...,,.,,:'+;;';''++++++;,,,,,.,:;;;;;,.,.......,:'+;,:+++';;;''++;:.,,,,,....,,
,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,.,,,,....,.......,...,,,,,..,,...,,.,,,,,,,,,,,,,,,,,,..,,...,,..,.......,,..,,.,.................,,,,,,,,::::;;;'''+@@##@@@@@@@@#+;;,,:,,::,:::'+#####+;;;:::::::::,,,,,,,,,,,......................,,,,,,,,,:::::::::;;;;;;;'''+++####@@@#+##'+##@@###@#@@@###++'';'';:::::::,,,,,,,........,,,,:;'++++++';::'+++++++'::;++++':;+########+,,,,,,,,,,,,,,,,..,.,,,.,'+++++'''+++++++':.,,,:;;;;;:,,,,,,,,,.,;+;,,,;++';;;'''''::,,..,,,.,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,..,,,,,,,,,.......,,,,,,,..,,,.....,,,,,.,,,,,,,,.,,,,,,.,....,,,,,......,,.,,,.,.................,,,,,,,,::::;;;;''#@###@@@@@@@@#++:,,,:,,:'';;##+#@@#';;::::::::::,,,,,,,,,,,.......................,,,,,,,,:::::::::;;;;;;;'''+++#####@@@+##++#@@@@@@@@@#@####'''''';::::::,,,,,,,,........,,,,,,;'++++++++++''++++++'''++++'';+######+':.,.,....,,,,,,...,..,...,'++;;'+++''++++++':,.:;';;;';;;;;;;;:,.,;;,...,;+';;'''''';::,,,.,,,,,.
,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,..,..,,,,,,,,......,,,,,.,,..,,,,,......,..........,,,,,,,....,..,,,,......,,.,,,,..................,,,,,,,::::;;;'''+@@@@@@@@@@@@@##+;;:,:,,;;;';'++++'';;;:::::::::,,,,,,,,,,,........................,,,,,,,,,:::::::::;;;;;;'''++######@@@+++';'#####@#@@@@@###+''''';:::::,,,,,,,,,........,,,:::;'''++++++++';'++++++''+++++######+':,..,,:,,,,,:;;;,,,....,:;;'++++;;;'+++++++++++';;'';;;;;;;;;;;;::,.,:,.,,..,;';;'+''';;;;;:,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,,,,,,,,,..,,,,,,,..................,,,,,,,....,,.,,,,,,,,.,,,,,,................,,,,,,,,::::;;;'''+@@#@@@@@@@@@##+;::,..,,::;'::''++;;;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,::::::::::;;;;;;'''++######@@##+''''#@@##@@@@@@@###+''''''::::,,,,,,,,,,......,..,:,:''+++'+++++++++++++++++''+++':::;::,,...,;;';,..,'++',,.,,..,'+++++++++''+++++++++++++'';;;;;;,,,,,,,,,,,,,,,..,,.:'''++++':::''';::,,..,
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,..,,,,.,,,,,,,,,...,,,,,,,,,,,....,,,,,.........,,,,,,,.,,,,,,...............,,,,,,,,,:::;;;;'''+@##@@@@@@@@###'':,,,.,:::;;;;'++##;;;::::::::::,,,,,,,,,,........................,,,,,,,,,:::::::::::;;;;;'''++######@@###++++@@@@#@@#@@@####+'''+'':,::,,,,,,,,,,........,,,:'#+'++++++++++++++++++++''++++,.,:;;;:.,,:++++,..:++++:.,,';:,,:;'+++++++++++++++++++++++;;'';;,,,,,,.,,,,:;::,..,,:;''++++'::::'+';:::,,.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,..,,,,............,,,.,,.,,,,,,,..............,,,,,,,,,::::;;;;'''#@##@@@@@@@@@#+++;:::,,::::;'++#++#;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,:::::::::::;;;;;'''++#######@@@##';+##@@##@@@@#@@##++''+''::::,,,,,,,,,,..,,,,.,,.:+#+'::'+++++++++++++++++++'++++:.:++++',.,'++++:..:++++:.,,;++;,.,,;++++++++++++++++++++++'''';;,,,,,,,,::;''''';;::;'''+++';,:::;'++':::,,
,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,.,,,,,,,.,,,,....,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,,,,..............,,,,,,,,..............,,,,,,,,,::::;;;''''#@#@#@@#@@@@@#++;:,,:,::;:;';'++#+';;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,:::::::::::;;;;;'''++######@@@@##+'+#@@@@#@@@#@@@@#+++''''::::,,,,,,,,,,,,,,,,,,,:+++';;;'''+++++++++++++++++''+++;.:++++';,;+++++:..:++++:.,,,+++:...,;'+'''''++++++++++++'+++'';,,,,,,:;''''''++++'';;'''+++;::;;''''++';:,,
,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,......,,,,,,.,,,,,,,,.............,,,,,,,,,:::::;;;'''+@@##@@@@@@@@@##+:::,..,:,:::'''+++;;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,,::::::::::;;;;;'''++######@@@@@#+###@##@##@@@@@####++''''::::,,,,,,,,,,,,,,:,,,:++++;;'++''+++++++'''''''++++'+++;,;+++++''++++++',,'++++:,,,,:++',,,,;'+';;:;'++++++++++''''+';:,,,,;'+++'''''+++++';;''++++::;+++++''++';:;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,......,..,.,,,,,,,,,,...........,,,,,,,,,,::::;;;;'''#++@##@@@@@@@#+#+':,,,.,:,:,:'+'+++;;::::::::::::,,,,,,,,,.......................,,,,,,,,,,,:::::::::::;;;;;'''++######@@@@@##+##@#@@##@@@@@@###+++'''::::,,,,,,,,,,,,,::,:+#+++'''+#++++++'+++':,,,:;;;;'++++;,;+++++''+++++++:;+++++:.,,,,;++':.,;'+';;;;''+++++++++'''''':,,,;'+''''''''';;;'''''''++++;'++++++';;'''''
,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,..,,,,.,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,.,....,,,,,,,,,,,.........,,,,,,,,,,,::::;;;''''@++#@@@@@@@#####';:,::,,::,;';+++#':;::::::::::::,,,,,,,,,,......................,,,,,,,,,,,:::::::::::;;;;;''+++#####@@#@@##+'##@##@@@@@@@@@######+''::::,,,,,,,,,,,,:::;+#+#+'''++++++++''++++';;::,,,,:'+++;,;+++++''+++++++'++++++:,,.,.,'++';;'++';'''''+++++++++'''''':,:''+;:::'''''';:,;'''''+++++++++++++'::;'+++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,.,,,,,,,.,,,..,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,::,,,,,,,,,,.....,,,,,,,,,,,,::::;;;;'''#####@@#@@@@@@@##;,,,,,,:;;:'+''+#+':::::::::::::,,,,,,,,,,,.....................,,,,,,,,,,,::::::::::::;;;;;''++######@@@#####++#@@@@@@@@@#@@@#####++':::::,,,,,,,,,,,:;:'##+++###+++'''+++++++++++''';;;;;'++:.:'++++'+++++++++++++++;,,,,,.,+++++++++'+++++++++++++++'+++';;++;:,::;;''''';::;'''''+++++++'+++++;,:'++++
,,,,,,,,,,,,,,,,,,,,..,,,,,.....,,,,,,...,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,.,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;''''#'+@@@@@@@@#@@#+';,,,..,:;;;;;++++';;::::::::::::,,,,,,,,,,,....................,,,,,,,,,,,:::::::::::::;;;;'''++######@@@@@@@@#+#@@@@@#@@@@@@@@##++++;::::::,,,,,,,,,,:;;++++#@@######;,::;;'++++++++++++'''+':.;+++++'+++++++++++++++;,.,.,,.:++++++++++++++++++++++++++++++++::,:::;;''''';::;;'';;;'++++++'+++'::'+++++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,.,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;;'''+#'+##@@@@@@@@@@#;'':...:;::;;;;'+';::::::::::::::,,,,,,,,,,,,...................,,,,,,,,,,,:::::::::::::;;;;'''++#####@@@@@@@@@#@@@##@@#@@@@@@####++++:::::::,,,,,,,,,,:;;'+#@@####@#;,,,,,,,,,,,:;'++++'''''+':.:'++++'+++++++++++++++;.,,,,.,.;++++++'''+''++++++++++++++++++':,:::;''''''':,:;;;';::;'+++++++++;;'++++++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,,::,,,,,,,,,,,,,,,,,,,,,,,,,,:::::;;;''''+@####@@@@@@@##@#'+;:,,.,:::;'+;++';:::::::::::::::,,,,,,,,,,,..................,,,,,,,,,,,::::::::::::::;;;;''+++#####@@@@@##@##+##@#@@@#@@@@@#####++':::::::,,,,,,,,,::;''#@######':,,,,,,,,,,,,,,,;'++'';:,:;'::'+++''+++++++++++++++;...,,..,'+++'';::;';;'';;'+++++++++++';'::,::;'''''';::;'';::,:;++++++++++''+++++++
,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,:::::,,,,,,,,,,,,,,,,,,,,,,,,::::;;;'''''+##@@@@@@@@@@@###'':::,,,:;;;'+'+'';:::::::::::::::,,,,,,,,,,,,................,,,,,,,,,,,:::::::::::::::;;;;''++#####@@@@@@@@@##++#@@@@@#@@@@@@@@##++'::::::::,,,,,,,:::;'+++++##+:,,,,,,,,,,,,,,,,,,,;'++';:,,;''''++''+++++++++++++++';,,..,,,''++';;::;'''';::'';;'+++++++':::,,:;''''''';::;';;:,:;;++''+++''''++++++++
,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,:::::;;;'''++##+#@#@@##@@@@@#';;::,,::;;:;'';;;;:;::::::::::::::,,,,,,,,,,,,..............,,,,,,,,,,,,,:::::::::::::::;;;'''++#####@@@@@@@@@#@@####@@@@@@@@@@@##++++::::::::::,,,,::::;''+'#@+;:,,,,,,,,,,,,,,,,,,,,,,;++++;:;'++++;,:++++++++++++++++'':,,::;'''++';:;;''+'::;';::;'++++++++';::;''''''+';:;'''';;';;'+'''':::;'+++++++;
,,,,,,,,,,,,,,.,,,,..,,..,,,,,,,,,,,,,,,,,.,,,,.......,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,.,.,::::::,,,,,,,,,,,,,,,,,,,,,,,::::;;;'''+'#@@@#######@@@@#+'';:`,,:,:;;;;';';:;:::::::::::::::,,,,,,,,,,,,,,..........,,,,,,,,,,,,,::::::::::::::::;;;;''++#####@@@@@@@@@@@++#@@@@@@@@@@@@####++++::::::::::::::::::;;'++++':::,,,,,,,,,,,,,,,,,,,,,,:'+++''''+++;.,+++++++++++++++++'';''''''''++';::;'';:;';:,:'+;:'+++++++''''''''''';;'''+++++++'++'';:,:'+++++++;:
,,,,,,,,,,,,,,,..,,,,,...,,,,,,,,,,,,.,,,,,,........,,,,.,,,,,..,,...,,,,,,,,,,,,,,,,,,,,,..,,,,,,...,,,,.,::::::,,,,,,,,,,,,,,,,,,,,,,:::::;;''''++####+#@##@@@@@##+'';:.,,:,:+';'''#'::::::::::::::::::,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,:::::::::::::::::;;;;''++#####@@@@@@@@@@#+''#@@@@@@@@@@@####++++:::::::::::::::::::;''++';;::,,,,,,,,,,,,,,,,,,,,,,,,:::;++'+++:.,++++++++++++++++++'''''''';''+';,:;'';;;';;:;'';:;++++++++''''''''''++++'++#+++#+#+''':,;+++++++;:,
,,,,,,,,,,,,,,,,,,,..,.,...,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.,,.,,,,,,,.,::::::::,,,,,,,,,,,,,,,,,,,,,::::;;;'''+++##++##@@@@@@@@@#+;:::,.,,,:'''++;+'::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::;;;''++#######@@@@@@@@####+@#@#@##@@@@@@##+++++::::::::::::;;;;;::;;''''';:,,,,,,,,,,,,,,,,,,,,,,,,,,,.,:+++++':,'++++++++++++++''++''''''''''++;;;++''''++++'''';:;'++++++'''''''''++#+''++';:;;'++'+'::;++++++';::
,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,.,,,,,..,,,,,,,::::::::::::,,::,::::::::::;;;;'''+++####+++'';:....,,..,,,.,:::::::::,,,,,,,,,,,,,,,,,,,:::::;;'''++++##+#@##@@@@@@#@#+;;:,,..,:;;''++'+;:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::;;;''++####+#@@@@@@#@@@@#@@@#@#@@#@@@@@@##+###+;::::::;;;;;;;;;;;;;;''''';:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'++;:';,'++++++++++++++''+++'';''''++'+'++++''''+++++++++:,:'+++++';'''''''+#+''++':::,,::'+#+';'++++++++;:
,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,,,,,,::;;;;;;;:;::;;::::,,,,,,,,,,,,,,,,:;;''+++#@@#+;:,..,,.,.,::::::::::,,,,,,,,,,,,,,,,,,,::::;;;'''+++##+##@@@@@@@#@#@#';';::,,:''''+'##+:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::;;;''++####+@@@@@@@@@@@#+##+@@###@@@##@###++###':::;;;;;;;;;;;;;;;;;'''''::,::::,,,,,,,,,,,,,,,,,,,,,,,,,;++;,,;'++++++++++++++'''''++'''+++++''''++''+++++++++++++;::'#++';;'''''''+#+'+#+';;;;;;;'++++'++++++++#';
,,,,,,,,,,,,,,,,,,,,,,,,,::,.,:::::::;'''+######@@#@@@@@@@@@@@@@@####################+++###@@#@##':,,...,;::::::::::,,,,,,,,,,,,,,,,:::::;;;'''++++###+'##@@@@##@@@@+;';:;;:;'+####@#;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::;;''++####++#@@@@@#@@#@##+;:##@@@@@@@@@@#######+;::;;;;;'''''';;;;;;''''':::;;;'';;;;;;;:::::::::,,,,,,,,:'++;::+++++++++++++++'''''''++++++++''''+++++++'''';'++++++''+++';;''''+++++#+++++++'''+++++++++++++++++++
,,,,,,,,,,,,,,,,,,,.,:;+++++#####@####@@@@@###@##################@@@@@@@@@@#@@@@@@@@@#@@@@##@@@@@@##;.,,:;::::::::::,,,,,,,,,,,,,,,::::::;;''''+++++#@######@@#@@###':';:,::;''+++@@#;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::;;;''+#####+++#@@@@@@#####+;;#####@@@@########++++;:;;;;''''''''';;;;;'+';:,,::;''+++''''''''''''''''';;;;;;+++++'++++++++++++++'''''''++++++++'++++++++';;;;;::;++++##++++';;'+++#''++++++++##';:;;;+#+++++'++++++++
,,,,,,,,,,,,,,,,..,:'#@@@@@@@@@@@@@@#########################################@@@@@@@@@@@@#########@@+,,:;:::::::::::,,,,,,,,,,,,,,::::::;;;'''++++#####@@+#@@@@@@@#+',::,..,:''++###+;::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,:,:::::::::::::::::::::;;''++####++'+@@@@@@@@@@##++++@@#@@@#########++++#';;;;''''''''''';;;''+';::::,:::::;;''++++++++++++++++++'++++++++++'+++++++++++''''''''++++++++++++';;;;;;;:,,,:'+#+''+++''''###+''#####++#++#+';,:++++++';'+++++++
,,,,,,,,,,,,,,,,.;#@@@@#++++++++#####@#@@@@@@@@@@@@@@@@@@@@@@@@@##@@##############++'';;::,,,,,:;'@#+';;;:::::::::::::::::,,,,,,:::::::;;;'''++++#@@@++@#+@@#@@@@###+:,,:,.,:;'+##@#;:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;'+++####++'#@#@@@@@@@@@@++'+##@@@@@#####+###+++#+;;;;'''''++'''';;;'++;'''''''';''''''''''+++++++++++++++++++++++++++++++++++++''''++++''++++++++++'::;''':,,,,,:'#++'''''''##+#+'+++++++#+++####+'+++++++'++++++++
,,,,,,,,,,,,.,,,,'@#########++';;;;::::::::;::::;;;;::;;:;:::::::,:,,,,,,,,::,,,,.............:'##@++';;;:::::::::::::::::,,:::::::::::;;;'''++++#@@@#####@@#@@@###';;;;:,,::;:+''@#;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;''++######++##@@@@##@#@+##'';;'@@#@@##############''''''+++++++''';;'++''''''''''''''''''''''+++++++++++++++++++++++++++++++++++'''++++++''++++++++''';;'';,,,,,:;+#+#'''';'+####+++'::::'+###++++###+++++++++++++++
,,,,,,,,,,:,.,:+++@#@#++++++####++'::,,..................,,,,,::;;''''''''';;:,,,,,..,....,:;'#@@#+#+;;;;:::::::::::::::::::::::::::::;;;'''++++#@@@@@@@@@@@@##@##@+;;;:,.,,::'#++#+;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;'++#####@#+#++##@@@#@@###+::+###@##++###+#######+'''++++++++###++'''''::::;;''''''''''''''''''+++++++++++++++++++++++++++++++++++'''++++++'''++++++;;'''';:,,,,:;+#+'''++'''+###+#+':,:;'+###+'''+#+##++++++++++++++
,,,,,,,,,,,.....,+@##########+++++''''';;;:,,,,,,,,:::;;;''''++###@@@@@@@@@@@###++';::;;;'##@@@#+'+#;;;;:::::::::::::::::::::::::::::;;;;'''+++#@@@@##@@#@##@@@@@##+';:::,,::;'+##+':::::::::::::::::::::::::::::::,,,,,,,,,::::::::::::::::::::::::::::::;;''++#######+++'+#@@#@@@###++';#@#@#+++#########+'';''++###########+++++;;:,,.,:;''''''''''''''''''''''''''''''''';''''''+++++++++++''+++++++'''++++'::;'''''';::;++';;'+++'''+###++';;'+##+';;;:;+#+;'+++++++++++++++
,,,,,,,,..`.';;:,:#@@#####@@@@@@#############++++++++++++++###############+++##########@@@@#####;'#;;;;::::::::::::::::::::::::::::::;;;'''++++#@#@@+'@+#@@#@@@@@#++';:::,.:;';'###'::::::,,::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::;;''++#########+++++#@@@#@#####+'#@@@#+++######++'';;;;''+###########++++++++';;:,,,;'''''''''''''''''''''''''''''';;''''''+'+++++++++++''+++++++''+#+;,,;++++##+'''+'::'''''+''+###+'+##+';;:,,,,,:+#+:,;'#++++++++++++
,,,,,,,,.`.;+###++;+@@##########@@@#@@@@##@@@#@@##################################@@@@@#######@#'+';:;::::::::::::::::::::::::::::::;;;'''+++++@@@@@##@+#@@@@#@@#++';:::,,.:;':+++#';::::,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;'++#####@####++#''##@##@@++####@#@@+'''+++++++'';;:::;''++####+###++++++++++++++';;;'''''''''''''''''''''''''''';;'''''''+++++++++++++'''+++++++''+'::'+#+'+'++++'';:;';:;+#+'####++++':,,.,,,,,,,'#+',,;#++++++++++++
,,,,,,,.`.;+##@#+#';'#########################################################################@+;';::::::::::::::::::::::::::::::::;;;;'''++++#@@@@@@@@#@##@@@@@#+#';:::,..::;;+++#;:;:::,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;''++###@@@##++++''+@#+####+++@@@@#@#+'''''+++''';;:::::;;;;'+++++##++''++++++######+;''''''''''''''''''''''''''';;;'''';;'++'''++++++++++''+++++++''''''';;';:;''';;''''::'##''####+':,.,:;;;;;:;:;'##+;::+++++++++++++
,,,,,,,`,;+##@+#@@+;;;###############++''';;;;;;;;;;;;''''###############################@@@@@@';;:::::::::::::::::::::::::::::::::;;;'''+++++@@@@@@@@@@@##@#@@@@##';:,.,..,,;:;+#+;;;:::,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;'+++######@@#+++''+####+#++#####@#@#@+'+'''''''';;;:::::::::::;;';'##+++++#########@#'''''''''''''''''''''''''''''''''+'''''''''''+++++++++''++++++++++;:,,;';:;';:,:;;'''+##+''+####+;:;'+#######+###+#+';'++++++++++++
,,,,,:.`:+#@@#+#@@#'';+@#@#########@##########+';;+#####+#########+#####+################+++++';;;::::::::::::::::::::::::::::::::;;;'''+++++#@@@@@@@@@@##@@#@@@@#++::,,:::,:''''##';;::::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::;;;''+####@##@@###+''+++####@+#@##@@@#@@#++''''''''';;;:::::::::::::;;;+#+++##########@@+'''''''''''''''''++'++++++++++++++++'''''''''''++++++'++''++++++'+';:,:'''';:,,:;''+#####''#####################+#+##++++++++++++++
,,,,,,.`,+#@#+;;+@@+;'+@###@@################+#+++++######+##+++++++++++###+#+##++'';;;:,,:;;;;::::::::::::::::::::::::::::::::::;;;'''''++++@@@@@@@@@@####@@@@@@#'#';::,:::;+##+@#';;::::,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::;;;''+#####@##@@####'+;;''+++###@+#@@@#@@+++''''''''';;;::::::::::::::::;######@##@@##@@@+''''''''''''''''''''''+++++++++++'+++';;;;'++'''+++';'++''+++++;;'+';:;;'';,,,:'++#######''###################+##++###+++++++'''+++
,,,,,,.`:###@#';'+##;;'######++++'''''';;:::::::,:'':;'';;;;'';''++++'';';;;++';;,,:,,::::;;';:;;:::::::::::::::::::::::::::::::;;;''''+++++@@@@@@@@@@@++@##@@##@@+#';;:,:,:;'+###+;;;;::::,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::;;;'++####@@###@@####+';;'''''++@#+#@@@#@#+++'''''''''';;:::::::::::::::,,'@@@@@@@@@@@@@@@'''''''''''''''+++++'''''+++++++++++++++'''++++'''++''++++'+++++''++++'''';:,,,;'#########''########################++++++++++++++;;
,,,,,,,:+###@#';'+##+''#@####'''';;;;;;::,,:::,,,,;;,::;;;:::::'+++'+';;;;';'+','::::::::;;;;;;;::::::::::::::::::::::::::::::::;;;'''++++++@@@@@@@@@@@#+@##@@####+;:,:,,,.,:;:'+#';;;;:::::,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::;;''++#########@@@#+++#''+++++#++@##@@@@@#++++++'''''''';;;:::::::::::,:::::#@@@@@@@@@@@#@#''''''''+++++++++++++++++++++++++++++''+++++++++'''''++++++''++++++'''''';:,,::'##########++###################++'+##+++++++++++#':'
,,,,,,,+#####@':,;#@@@##@####+'''';;';;:::,:,,,.,,';,,:::;;;:,:+';;:;';::'+''';:';;,,:::::;;;;:::::::::::::::::::::::::::::::::;;;'''++++#+#@@@@@@#######@###@@#+';;:,,,,.,,:';;+#+;;;;;::::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::;;;'++##########@@@#+'+#'##+++'#####@#@@@##++++++'''''''';;;::::::::::::::,:,'@@@@@@@@@@@@@+;''''++++++++++++++++++++++++++++''''''+++''++++++''++++++++'++':,,,,:;'';,,:;'###############################+;,,:+###+++++++++++'+
,,,,,,.'@#####;,:'###########+'''';'';;::,,:,,..,:':.,,:;'':::;;:,:;''':;'''';''';;,,,,::,:;;:::::::::::::::::::::::::::::::::;;;'''++++#'+@@@@@@@##@##@#@@##@@#@#++;:::,.,::'+++#@';;;;:::::,,,,,:::::::::::::::::::::::::::::::::::::::::::::;;;''++####@#####@@##+';+++''#++;++@++##@@@#+++++++''''+'''';;:::::::::::::::,,:#@@@@@@@@@@@@;:''++++'+++++'''''++++++++++++++++++''+++';;'+++++''''''+++++''+;,,,,,,:;;:,:'###########################++####+''+##+#+#+++++++++++
,,,,,,,,#@##@#';;'+##@#######+'''';'';;;:,.,,.`.,:;..,,:;;;::';;;::''''''''''''';,;,,,::,,:;;::::::::::::::::::::::::::::::::;;;''''+++##'#@@@@@@@@@@@####@#+@@###++;::::,,:;'+++#@+'';;;::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;'''++###@@####@@@##++'''';;##++##@@#@@@@@++++++++'''+++''';;::::::::::::,::::,+@@@@@@@@@@@#;;'++'''''+++''''''+++''''''''++++++++++++''';'+++++'''''++++++++';:,,,,,:;;;'+#######################++#;,:+############+++#+++++'++
,,,,,,,,+@##@#+';''#@#######@#'+''';;;;;:,.,,.``.,,``.,:,..:,;;:';:;;''''''''''',`::::::,,;:::::::::::::::::::::::::::::::::;;;;'''+++##+#@@#@@@@@@@@@@@#+###@@#+++';:,,,,.:;+''+#@+''';;;::::::::::::::::::::::::::::::::::::::::::::::::::;;;;''+++###@######@@@#+'+;:::'''#@#@@#@@@@@@#++++++++'''+++''';;;:::::::::::::::::'@@@@@@@@@@@+,;+++''''''+++''''+++'''''''+++++++++++++++'';'+++++++''''++++#++'+':::;;'++#+'''+###################+''#;:;+##########++#+++++++++++
,,,,,,,,+@++@##+::'+@#########+#';;;;;:;:..,:.```,,``.,,...,,:,;;;::;';'''''''+;,.,;::;;:;;::::::::::::::::::::::::::::::::;;;'''''+++#+#@@@@@@@@@@@@@@@@@@@@###+'';::.,,,`,:;;+++@+''''';;::::::::::::::::::::::::::::::::::::::::::::::::;;;'''++++#########@@@###'';:,:'+'+@##+++####+++++++++++'''+++''';;:::::::::::::::::;#@@@@@@@@@@'::;'++'''''+++'''+++++'''''''+++++''''++++++';'++++++++'''+++++++++''++++#+###++'+########################################+#+++++++++
,,,,,,,,+@#'#@#',,:;+###########';;;;:::,,..,.```,.........,,,:;;;;;;;''''''+++:..,;;'';::::::::::::::::::::::::::::::::::;;;;'''++++#++@@@@@@@@@#@@@@#@@@###@###+':,,:,,,.:;;'##+##''''';;;:::::::::::::::::::::::::::::::::::::::::::::;;;;''+++++#@########@@@##+'';::,,;'+#++#+++++++++++++++++'''++'''';;::::::::::::::::::#@@@@@@@@@@';:::'+++'''+++'''+++++'''''''''''''''''''++++'''+++++++++''+++++++++'+##+#+'+##+'+#######+'+#########################+###++#####+++++
,,,,,,,,+@####+'+###+#############+++'';;::,,,,....,.........,::::;;;;''''''+++;;''++;:::::::::::::::::::::::::::::::::::;;;;'''++++##+#@##@@@@@@@@####@@#########+;:::,,,.:;''##+++'''''';;;;:::::::::::::::::::::::::::::::::::::::::::;;'''+++++###########@@@@#++';::,.:;++++#++++++++++++++++++''+++''';;;:::::::::::::::::#@@@@@@@@@#++''''+++'''++++'''+++'''''''''''''''++++++++++++''++++++++'''++##++++'+++++''++;'########+'+###################+++#########+##+++++++
,,,,,,,,+@@@#+#@@@@@######################+''';::::::;:::::::;;;;;;';''''''++++++++'::::::::::::::::::::::::::::::::::::;;;;'''++++##'#@###@#@@@@@#@@@@@@########+';;,,,..`.:'''++++''''''';;;:::::::::::::::::::::::::::::::::::::::::;;;;''+++++###########@@@@##++;;;,,,,:'#++#++++++++++++++++++++'+++''';;;::::::::::::::::#@@@@@@@@@#'+++++++++++++++'''+++'''''''''''+++++++++++++++++''+++++++++'+++#+++#+'++#++##';+#############################+''+++#######+##++#++++
,:,,,,,,'+++##+@#+++##########################++'''''''''''''''''''''''++++++++++'::::::::::::,,::::::::::::::::::::::::;;;'''+++++#++@@@#@@@@@@@##@@@@#@@@@#@@#+':::,,,,..,'+'+###@#''''''';;;::::::::::::::::::::::::::::::::::::::::;;;''++++##########+##@@@###''';;,,,:;+#''##+++++++++++++++++++++''''';;;:::::::::::::::;@@@@@@@@@@#++++++++++++++++++++++''''''''++++++++++++++++++''++''+++++++++'++++++#+++##+++'++#+''#####################++++++++++######+#######+++
::,,,,,,+#;'##+#++###############++++''+++++''+''+''''''''''''''++++'+++++++'''';::,:::::::,,,,,,,::::::::::::::::::::;;;;'''+++++#''@@@@@@@@@@@@@#@##@@@@@###+++#''':::::;:+++###@@#''''''';;;;:::::::::::::::::::::::::::::::::::::::;;'''+++###++#####++#@@@@###''':::..;;'#++###+++++++++++++++++++++'''';;;:::::::::::::::'@@@@@@@@@@#++++++++++++++++++++++'''''+'+++++++++++++++++++';+++'++++++++++++++++++++#+;::'####+'+##+++###################################+;:'#++
::::,,,,+#::@#'+''+##############+'';,.,,::......:::;;''''+++++++';;'+''''++';':,,,:::,::,,,,:,,,,::::::::::::::::::::;;;''''++++++'#@##@#@@@@@@@##@##@@@@@@@#++'+';;,,,.::,;++++##@@+'''''''';;;;::::::::::::::::::::::::::::::::::::;;;'''+###+++######+#@@@@@@#@#+;,,,``,,:';'#####++++++++++++++++++++''';;;:::::::::::::::'@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++''++++++++++++++++#+++''++++++#+;,,'###########+###############################++##',,'#++
:::::,,.++,:@#''+;;##############++++::..,,.....`::::;++''+++++++';'+++##++#++:,,,,,,::,,,,,,,,,,,::::::::::::::::::;;;;;'''++++#+'#@@##@##@@@@@@@#@#@@@@@@@@@##'';:;,,,.,..:'++###@@#'''''''';;;;::::::::::::::::::::::::::::::::::::;;;'+###++++######+#@@#@@@@##+':::,,,.,;';'######+++++++++++++++++++++'';;;:::::::::::;''+#@@@@@@#+''';;;;;;;::;'''''+++++++++++++++++++++++++++++++++++'''++++++#+++#+';'++++++'';;############################################;:+#+++##+#
::::::,.++,:@##@#::###############+##':,,,.....`.:::;'''+++++++++++++++++++#+:,,,,,,,,,,,,,,,,,,,,:::::::::::::::::;;;;;'''++++#+::@@####@#@@#@@#@@@@#@@@@@##@##+';:::,:.,.,;'+##+#@@+;''''''';;;;;::::::::::::::::::::::::::::::::::;;;'++##++++++####++#@@@@@###+;:;;;,:.,,;';+#######++++++++++++++++++++++';;::::::::::;'''+#@@@@@#+++';::::::;:::;''''+++++++++++++++++++'''''+++++++++++''+++++'++##+##++''+#+::;+##########################+++#################+'+######+#
::::::,.'+,,#@@@+::#@##############+#+;'::,,....:::;';;''++++++++++++++++##',,,,,,,,,,,,,,,,,,,,,::::::::::::::::::;;;;'''++++#;:,:@#####@@@#@@@#@@@@#@@@@@###@+++';;:,,.,,,;'+##+#@@#;;;''''';;;;;;:::::::::::::::::::::::::::::::::;;;''++''++++####++#@@@@@@##@+''':,.``,,:;;+########+++++++++++++++++++++++';;::::::::::::+##@@@#+'+++';;:::;''';'''''+++++++++++++++++++++++++++''++++++++++++++++++###+++''';::'#########+++#############+++++########################+###
:::,::,,'#:,#@#@'::+@###############+#+;::,,.`,::::;''++++++++++++++++++++',,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;';''++++;,..'@#####@@@@@@@@##@@#@@##@@@@##+;;;;:..,,,,'+''##+#@#;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::;;;'+'''++++###++##@##@@@###+#';,.` `,:';;######+###+++++++++++++++++++++++++';::::::::::'+#@@#++++++++'';;'+++'++'+++++++++'''+''''++++++++++++++++++++++++++++++++###++#++';'+#+'+###+++++################++##########################+##
::::::,,;#;,#@#@':;+###############+'++:::::,.:::::'''+++'+++++++++++++++;,.,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;'''++++:,.,,+@@#+@@@@@@#@@@##@@@@@@@@@@#+#+;';::..,..,;;';+#+#@#;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;'+';''++++##+++#@@@@@@###+;;';;.```,:;''######+++##+++++++++++++++++++++++++++'';;::::;'++##++++++++++++++++++'''''++''++++''''''''+++++++++++++++++++++++++++++++#+#+++##''+##''+##+''++#################++#######################++###+
:::::,:,;#',#@#@':;+###########@####+##+::;';;::::''+;'''''''''+++++++++;,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;;;;'''+++':,,,,,'@@##@@@@@@@@@@@@#@@#@@@@@@##++;;:::...`,:;;'+'+#@@#;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;'';'''++++##++#@@@@@#####;:;';:.```.,:;+######++++###+++++++++++++++++++++++++++++++++'+++++++''+++++++++++'';;;;;;'+'''''''''''''''+++++++++++++++++++++++++++#+++##+++++++###++####++####################++######################+:;+##
:::::,:::#',+#@@':;+###########@##@####+';;;;;:::;''+;;''''''''''''''+';,.,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;''''++',,,,,,,'@@###@@@#@@@@@@@##@@@@@@@@@#'';,,:,.....,:'++'#@@@#;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::;;;;;''+++##++#@@@@#@@@@@#;+':,.```.`.:;######++++++###++++++++++++++++++++++++++++++++++++++++'''''+++++++++''''';;'''''''''''''''''+++++++++++++++++++++++++++++++##+++++#+';+#####+++############################################+:,:;+
::::::::,#+::+#@';;+#@#############@@###++'';;::;''+':;+''''''''''''+':..,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;;;;;;'''''+;,,,,,,,,'@####@####@@@@@@#@@@@@@@@@@+;++:,:.,....,:'''+##@@#;;;;:::::;;;;;;;;;:::::::::::::::::::::::::::::::::;;;''++++++##@@@@@@#@#'+'';,:`` `..,:'######++++++++#++++++++++++++++++++++++++++++++++++++++';''+++++++++++++++'''''''''''''''+++++++++++++++++++++++++++++++++++##+++++#+:,;+#++'';'###################++########################;,,,;
::::::::,##;,'#@':;+###########@+++#@@@@++'';;;;'++':::+;:;'''''''''':.,.,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;;''''+;,.,,,,,,,#@#@@@@####@@@@###@@@@@@@@@@#+''':,,..,..:;;:+#+##@#;;;;:::::::;;;;;;;:::::::::::::::::::::::::::::::::;;''+++++++#@@@@@@#+++;';;';;.``..:,:+######++++++++####+++++++++++++++++++++++++++++++++++++';'+++++++++++''+''''''''''+'''+++++++++++++++++++++++++++++++++++++###+++++++;;;'+';;'''###################++########################':,,;
::::::::,+@','+#;;'+#############+++#@@#++''';;'++'::::+:,:;:''''''':.....,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;;''''+;,,,,,,,,,,#@@@@@##@+#@@@@#+@@@@@@@@@@@@+';;:..```.`:::;'+###@#;;;;:::::::::;;;;;:::::::::::::::::::::::::::::::::;;''++++++#@@@@#@@+;'+#'+'+;,```..::;#######++++++++++###++++++++++++++++++++++++++++++++++++';'++++++++++'''+++''+'+++''++++++++++++++++++++++++++++++++++++++++###++++++#+';;;::;'+##################++###################''######;,,;
::::::::::@+,;#+;'++#####@#######++++#@#+++'''+##+;::::':,:;:;''''':.......,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;;'''''+;,,,,,,,,,,,#@@@@@#+##@@@@@@#@@@@@@@@@@###';;:,.``....,;;'+##@@#;;;::::::::::::::::::::::::::::::::::::::::::::::::;''++++++#@@@@@@###+++#;'';:.`````,:'#######++++++++++###++++++++++++++++++++++++++++++++''''++++++++'++++'''''+'''''''''++++++''++++++';'+++++++++++++++++++++++++#++++++''+'::;'+###################++####################++#######:,:
:::::::,:,+@'+@+'+++##########@#++++++#@#++++###+;::;:,'::::::'+'+;...........,,,,,,,,,,,,,,,,::::::::::;;;;;;;'''''';,,,,,,,,,,,,#@@@@##+#@@@@@#@###@@@@@@@@#@#+';::,`.....,';'+++@@@;;;;::::::::::::::::::::::::::::::::::::::::::::::;;''+++++#@@@@@@@#++##++;::,..` ``.,,'########++++++++##+++++++++++++++++++++++++++++++++''''''++'+++++'++++'''''''''''''''+++++''++++++';''+++++++++++++++++++++####+++++';;++''+###+#################+#################++###########'::
:::::::::::@@@#+++'+#@######@#@#++#++++###+####+';;;;:,',,::::;'+;..............,,,,,,,,,,,,::::::::::;;;;;;;;;'''++;,,,,,,,,,,,,,#@@@@@@#@@@@@@#@@@@@@@@@@@@@#++':,:.`````.::''''+@@@';;;;:::::::::::::::::::::::::::::::::::::::::::::;'''++++#@##@@@@##';+#+'';;:.````.::;##########+++++++#+##++++#+++++++++++++++++++++++++';''''''';+++++'+++++'''''+++++'''++++++++++++++;;';''++++'''++++++++++++++##+++'+';;''''++#+####################################++########+'+#';
:::::::::::'@##+##+#@###@######@#@@@#########+##+';;;:,:,::::::''...............,,,,,,,,,,,,::::::::::;;;;;;;;'''++;,,,,,,,,,,,,,:#@@@@@##@@@@@@@@@@@#@@@@@@@@+'+;,,,.`````.::;'+++#@@';;;;:::::::::::::::::::::::::::::::::::::::::::;;;''++++#@@@#@@@#@@#''+';;'':,````.::'##########+++++++++++++++++++++++++++++++++++++++++;;'''''';;++++++++++''++'++++++++'++++++++'++++++';'';'';;;;;'++++++++++##++#+'''+++++++';'+###############################################',,'##
::::::::::::#@#+###@@#######@@@@@@@@@@@@#@@##@##+++++++++++'''+',...............,,,,,,,,,,,:::::::::;;;;;;;;;'''++;,,,,,,,,,,,,,,:@@#@@#+#######@@@@@@@@@@@@@##';;:,..`.``..,:;'+++#@@+;;;;::::::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@@@#@##@@+'++'';;,.``` .:'#############++++++++++++++++++++++++++++++++++++++++''''''+''+++++++++++++++++++++++'++++++++''''''++;;;;''''''';''+++++++#+++'''''++'+++##+';'###############################################+:,,+#
::::::::::::+@##@##@######@###+#######@@@@@@@@@@@@@@@@@@######+:................,,,,,,,,,,:::::::::;;;;;;;;;''''+;,,,,,,,,,,,,,,,:@##@###@@#++++@@@@#@@@@@@@@##+;;;:,.`.``..,::'''+##@#';;;;;:::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@##@######++++';:,.`` ``.:'@##############+++++++++++++++++++++++++++++++++++++#'';''+#+++#++++++++++'''+++++++''++++++'+':;;;;;';;;:''+++''';;++++++#+''';;'+'''+++++#+';;+################################################+'##
:::::::::::::@@############+';:;;;;''''';:::::::;:;;;''''''';;:.................,,,,,,,,,:::::::::;;;;;;;;;''''+;,.,,,,,,,,,,,,,,:@@@@##@@#@##+#@@@@@@@@@@@@@##++',,,.`````.,,,;;'+#@@@''';;;::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@####+##@##+#+';;:,.````.,:'@#################+++++++++++++++++++++++++++++++++++';;;;;++#+#++++++++'+';'+++++++'+''++++'+';;;''''''';'''++';;;;'++++#+';;'';''++''++'''+;;;'+###################################################
:::::::::::::'@@@@@@#@##@+'':;;:::;'';:;,.````````````.,,,,,,,..................,,,,,,,,,:::::::;;;;;;;;;;''''+;,,,,,,,,,,,,,,,,,:#@#@@###@##@#@@@@@@@@@@@@@@@++';,.,.``````,:::'++#@@@#;'';;;::::::::::::::::::::::::::::::::::::;;;'''''+@@@@@#@####@@@##+#+'';::.```..,:#@#################++++++++++++++++++++++++++++++++++';;;;;'++++++++++++++'''++'++++''+''+++++++';;';;;;''''''''';,;''++++';;;;'+'''++++++'';';;';'+##################################################
::::::::::::::'''+##@#@#+;:;::;;:;+';:;:::,........`,.`,,::::..................,,,,,,,,,::::::::;;;;;;;;;''''+':.,,,,,,,,,,,,,,,,;@@@@@##+#+++##@#@@@@@@@@@@@##'';:::````...::;;'''#@@##'''';;;::::::::::::::::::::::::::::::::::;;;;''''#@@@@@@##++####@@#'++';:..`````.:'####################+++++++++++++++++++++++++++++++++';;;;;'+++++++++++++++++++'++''''''++++++++++';'';;;''''';''';;''+#':;';:;++''++++'++#+++';;''+############+#####################################
::::::::::::::::::::#@##'::;;;:;:'';;;;;;::.........,,,::;;:,.................,,,,,,,,,,:::::::;;;;;;;;'''''+':,,,,,,,,,,,,,,,,,,;@@@@@@@#+++'+###@@@@@@@@@@@##'';;::.````..::;:;;'+@@#@+'''';;;::::::::::::::::::::::::::::::::;;;''''+#@@@@@@#+'+''#+##@+;'';;,``````.,:+@#####################+++++++++++++++++++++++++''''+''';;''''++++++++++++++'+++++++'+++++''''++++';;;''''''''':;''''';+':;'';::'+';;''''''++##';''++######+:'###+#####################################
:::::::::::::::::::,#@@#;;;;'';;:;;:''';:,,..........::;;;;,..................,,,,,,,,,:::::::;;;;;;;;;''''+':,,,,,,,,,,,,,,,,,,,;@@@@@@##++##@#@@@@@@@@@@@@@@#;';,,,.`````.,,:;,;''#@@@@''''';;;::::::::::::::::::::::::::::;;;;;''''+@@@@@@@#++';'++##@#++;';;:,.````,,:+@@#####################+++++++++++++++++''+''''''''''''''''+++++++++++++++++++'''++''++++++'+++';;;''+';''''''''''''+;;:;+'''';;+'';'++''''''++''''+######','###++#####################+++############
::::::::::::::::::::+@##';;;'';:::;;'';;::........`...:;;;,...................,,,,,,,,:::::::;;;;;;;'''''''';,,,,,,,,,,,,,,,,,,,,'@@@@@@+'''##@@@@###@@@@@@@@##;;;,,:.`````..,:;:'''#@#@@#''''';;;;;:::::::::::::::::::::::;;;;;;''''#@@#@@@@@#+'+'+##@#@+++;;;;::,``.,,:'##@####################++++++++++++++++++''''''''''''''++++++++#####++++++''+++''++++++++++++++;::;++'';;;''''''''''+''''';;+++''++''';;'''''''''''''######+;+###++#########++#########+''''###########
::::::::::::::::::::'@@#':;;;;::::;;;;;::;:,.....``,;.,:;:...................,,,,,,,,,::::::;;;;;;;'''''''+;,,,,,,,,,,,,,,,,,,,,,+@#@@#@#';;+++##@@@@@@@@@@@#+#+;''';,.......::::'''+@@##@+''''';;;;;;;;;;;;;;;::::::::;;;;;;;;''';+#@@@@@@#+++'''''###@#@+;';;;,````,,,:+@##@####################++++++++++++++++++';''++++++++++++++++##++''';;;;;;;;+++++++++++++++++++':;';;;;';;''''''+''+'++++;:+++++++''';:''';::;'''+'+#+###########++++######;;+########+'+++#######+++#
::::::::::::::::::::'@####++';::::::;;;::::,....`.`.,``.,,`..................,,,,,,,,:::::::;;;;;'''''''''':,,,,,,,,,,,,,,,,,,,,,+@#@@@###+;;###@@@@@@@@@#@@@##+'+;:;,`......,:::;;;'####@@+''''''';;;;;;;;;;;;;;;;;;;;;;;;;'''''''#@#@@@@@+;;;;;;:'##'++#';;';:,.````,::+#@######################+++++++++++++++++++;''++'+++++++++++++++';::::::::;''+++++++++++++++++++':;;;;;+++'';;;;'+''+''++++:'+''++';;';:'''';::'+++++#++######+'###+++######++#########+'++######++#++#
:::::;;:::::::::::::'###+#@@@###++''+'''';:,,,::`.``...,....................,,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,+@@@@#+#'+';+#+#@@@@@@@@@@@@@+;'',,,.``.``...,::::''++@@@@@+''''''''''''''''';;;;;;;;;;;'''''''''#@@@@@@#++;;;::;;'+###+++:;';.,.....:;'#@########################+++++++++++++++++++''+';'+''++++++++++';::,,,::::;+++'+++++++++++++++++';''++++''''';;;''''++''++++'+++++;:;;;:;''';::;''+++##+######+'#################''+############+'#####
:;;::;;:::::::::::::'@#@#++#@#@@@@@@#######+'';::::::;':....................,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,#@#@@#+;,;'''+##@@@@@@@@@@@@@#'+';;:....``...,,:::''''+@@@###'''''''''''''''''''''';;'''''''''''#@@@@@#@#'';;'::;;';#@#+++::;:,.,..,;:;'#@###################+###++++++++++++++++++++''+':'++++++++++++';::::,::;;;;'+++++++++++++++++++++++++'''';''''';;'''++';++++''''''';;;';;'''';::'++++#++#########################;:+###########+'##'+##
:::::;::::::::::::::'#####++#@###@@@@@@#@@@@@@#+++###@+,`..................,,,,,,,,:::::::;;;;'''''''''';,,,,,,,,,,,,,,,,,,,,,,,,#@##@#+;;::'+##@@@@@@@@@@@@@#@@#'';':::,...,,.,::,::';;'#@#@@#++''''''''''''''''''''''''''''''+#@@@@@##'';;::;::,::+''##';::,::,...,;;;'#@@##################+###++++++++++++++++++++++++'+###########+;;;::::;''';;++++++++++++++++++++++++''''''''''''';;;''';:;++++::;'+'++''';''''''++++;'##+##########################+#############'+++###
::::::::::::::::::::'@##+#+++###+##########@@@@@@@@@@@:`..`................,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,,#@@#@#''+';#####@@@@@@@@@@@#####;;;;;,,.,....,,,,,::;::;+#@@@@@##########+###+++''''''''''''+#@@@@@##++;:;,,,::,:::'':'+;:::,,:,..,::'++@@#@################+###++++++++++++++++++++++++##############+';;:::'''+++++++++++++++++++++++++++''''';'''';''+;;;;'';,:'+++;:''''''+'++'''''++++':'##########################################+''+####
:::;::::::::::::::::'@@#++##++##+++++++';;;;;;;';;;;':`..................,,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,,,@@@@#@##'';'####@@@@@@@@@@@@#@+#+''';;.`..,.....,,::,:;;'+++##@@@@@@@@@@@@@@@@@@###+'+''++#@@@@@###+++;;:,,,,,.,:;::'''++;;;:,:::,:;;;'#@###################+###+++++++++++++++++++++++++##############+;:::;++++#+++++++++++++++++++++++++'''''''''''''+++''''':;++++';++;::;'''+'''';'++;:'+######################+';;+###############+''+####
::;;::::;:::::::::::'@#@###############+'';;::,;':::,...`................,,,,,,,::::::::;;;;;''''''''';,,,,,,,,,,,,,,,,,,,,,,,,,:@@@@@@#+;.,;+++#@@@@@@@@@@@@@#;+'+;';;:,...,,,,,,,,,,:;;'+''#####@@@@##@@@@#@@@@@@@@@#@@@@@@######+'+':::.,,,,,::';;'++++';;:;:,::;''++#@@@################++##++++++++++++++++++++++++++++++#######@###;::;'++++++++++++++++++++++++++++++'''''''';''''''+''+';;'++++++++';''++++'''';'+';'++++####################+';;+##############+'''+####
;;;::;;;;:::;::;::::+@#@#+##############+';';:::++;;,...................,,,,,,,::::::::;;;;;;'''''''';:,,,,,,,,,,,,,,,,,,,,,,,,,:@@##@#'':`:;+#++#@@@@@@@@@@@#+';;';+;:;;:..::,,,,,,::,:;''''+++++#####@@@@@@@@@@@@@@@@@@@@####++++';';:,,,,,.,:::;''++''+;,:;;,.,:''''+#@@#@################++++#+++++++++++++++++++++++++++++#####+++++'::;'++#+++++++++++++++++++++++++++''''';;;;;;''''+;'+;,;++++'+++';;'++++++'+';'+++++''+#######################################+''++####
;;;:;;;;;:::;;:;;:::#####++++++####++++##++;;::::++:.....`..............,,,,,,::::::::;;;;;;'''''+''':,,,,,,,,,,,,,,,,,,,,,,,,,,;@@###'';;:';'+++##@@@@@@@@@@##@+'+++;:;;;,,:,..,,,,:;,,:';;;'';'+++++######@@@@@@@@@@@@@@##++';;';;::::,,,....,::::'+';'+;::;::::;;'''+##@@#################+#++++++++++++++++++++++++++++++#+####+':::;;::''###++++++++++++++++++++++#++++''''';;';::;;''';'+:,;++++'+++'''++++''''++''''++;;'+#######################################+''+#####
;;;;;;;:;;;:::::;;;;@##@#++'''''+++'+++###';:;::''+,`...................,,,,,,:::::::;;;;;;;''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,'@@####+';;:;;;'####@@@@@@@@@@#@#++';'';;;.,:,,,,,,,:;;;:;:::;;:;'''''++++++#@##@@##########+''+';;::,:,,.,,,,,.,.:;'''+++:;:::';;'+####@@###################++++++++++++++++++++++++++++++++++++###'::::::;'#++++++++++++++++++++++';'+;;''+''''''+':;'''';;'+;;++++++++++++'++';:'+++';'''+':'+#######################################+''+#####
;;;;;;;::;;;::::;:'@#######++'+++++'++'+#++'::::;':....................,,,,,,:::::::;;;;;;;''''+'+'+#:,,,,,,,,,,,,,,,,,,,,,,,,,,'@++##;',;:,'''+#@#@@@@@@@@@@@@##++++'';;::;,;::,::,:;'';;;'';;';'';';;'''+'+#+'+#++++++''''';;;;;:,:,,...,,:,,,,,:;;'+++':::::;:;'+++####@#@#################+++++++++++++++++++++++++++++++++++##+;:::::;'##+++++++++++++++++++++;'';;:;''';';;''''';::::;'++''+++++++++''';;'++''''+'''''''''+#+##############################+'+####+;'######
;;;;;;;;;;;;:;:;,:#############++#+++''++'++:,::::.`..................,,,,,,:::::::;;;;;;;;''''++'+#@#:,,,,,,,,,,,,,,,,,,,,,,,,,;###@#;+''''''#+##@@@@@@@@@@@@######@++';';;:';::;:,;;:;''+';';'';;;::::;;;;'+';;';;;'';;:::::,,,,,.,,..,,....,,,::::;'';';:,::,.,''++###@@###################+++++++++++++++++++++++++++++++++++##+';:,:;'+#+++++++++++++++++''+++';;'''''''''';''';;:;''+'+++++++++++++;:+',,,:;''''+'''';;;''+##+###########################+;,,'####';+######
;;;;;;;;;;;;;:;:,+@###@###########++''''':::,,,,,....................,,,,,,::::::::;;;;;;;''''++''#@@@#;,,,,,,,,,,,,,,,,,,,,,,,,'@@@#@###+++';+++#@@@@@@@@@@@@@@@@##@##++';;;';:;:::;;::'+';:';;;,:;,,:,::::;;;;;;:,:;;;;:,,,,,,.,,.,.........,,,:;::;:''':::,,,,.;'+@###@####################+#++++++++++++++++++++++++++++++++++###+;;;'###+++++++++++++++'''''++'''''''':'+'++''':;;'''';;+'+++++++++';;+';;;;;::;++''+;;;;'++##############################;..;#####''#######
;;;;;;;;;;;;;;::#@##############+';;;;:,.....,......................,,,,,,::::::::;;;;;;;''''+++'#@#@@@#:,,,,:,,,,,,,,,,,,,,,,,,+@####@#+:;;;;'++##@@@@@@@@@@@@@@#####+'+';;'';;::;'';'';''';':;;::;;::;;::;;:;;:::,,::;:::,,,,,,,,..,,....,,,:,::''+'+++;,:;,::::'+####@@##@###################+++++++++++++'''++++++++++++++++++###++'++#+##+++++++++++++''''''''''''''''::'+''+''';::;''++';'++++++++''++'++++++''+++'++'';;++##############################:,;+#####''#######
;;;;;;;;;;;;;::###@####@###+++';:::,...............................,,,,,,::::::::;;;;;;;;'''+++++#@#@@@@@;,,,,,,,,,,,,,,,,,,,,,:+##@#++'';;;;''++#@@@@@@@@@@@@@#@##@@@#++++'+++';;;'''++';'+'+;;';:;;::;;:,;';;;:::,,,,,.,,,,,,:,...`...`.....,,::;;++#'++;::::,:;'#####@##@@###################+++++++++++++'++++++++++++++++++++####++++++#+++++++++++++''''''''';'+++++++;:;;;;''+'::'+''+'+++''''+++++++++++++++++++'++++''+##+######++++##################++#######'+#######
;;;;;;;;;;;;;;#@########+++''';,..................................,,,,,,,:::::::;;;;;;;;'''++++'###@@@@@@@;,,,,,,,,,,,,,,,,,,,,:'+#@@###;,:;:+';+#@@@@@@@@@@@@@##@@#@########++#+''''+''#'++'++;;;'';::;::,:::,:::,.,,...,,,,.`..`````````..``,.,:,:;++;'';,:::,,'+@@######@#####################++++++++++++++++++++++++++++++++++###+++###+++++++++++++'''''';;;;'+++++++++'::'''+'+;,;++''++++';'++++++++'+++++++++++'+++++'#++++####+'++++######+###################+########
;;;;;;;;;;;::#@#@######+'''''',..................................,,,,,,,::::::;;;;;;;;;''''+++''###@@@@@@@@;,,,,,,,,,,,,,,,,,,,:+#@#@@#+:.,;;';;+###@@@@@@@@@@@@#@@@@##@#++@##+#++++'#''#++''++';:''::::,::;;;::;:,,,,.,,....``````````````..`,..:::::+'';;::,:;;'+##@#####@#####################+++++++++++++'''''+++++++++++++++++####++#+++++++++++'+''''''';;''++';;;;;;;';;'+''''':;++';+++++'++++++++;;'++++++++++++++++++++####+++'+########':+#################++########
;;;;;;;;;;;:#@@########++'''';,..................................,,,,,,:::::::;;;;;;;;''''++++;;;+######@@@@',,,,,,,,,,,,,,,,,,:#@@###'::,;;;:;'++#@#@@@@@@@@@@@@@#@@@@@###+#@##++##+####+#+++'++;';;:;';;;'''';;::;,,,,,```.``````.````````.....:;';,'#;;';;,:;''+'+#@######@###################+++++++++++++++'''''+++++++++++++++++##++++++++++++++'''''''''''''+':;''';:;+''+++';'+;'++''++++++'+++++++++++';''+++++++++++++#+###+'''+#########+;###################+########
;;;;;;;;;;:+@###@#####++'''';:,.................................,,,,,,:::::::;;;;;;;;''''++++;;;;;'######@@@@:,,,,,,,,,,,,,,,,,:+##@#';;;.;';;+''+@@@@@@@@@@#@@@@@@@@@##@@@+#@@###@##@#@#####+'##+++;;'+;+;;'';:'::;::,,,..`..````.````````````.,:;''''';;;,,::,,;++####@@##@####################+++++++++++++''''''''''++++++++++'''''++++++++++++++++'''''''''''+++++++';''';'''+;:;+';++''+;:;++++++++++++++';''+++++++++++'+#+##+''++#############+###++###################+#
;;;;;;;;;;+@##@#######+';';;;,.................................,,,,,,:::::::;;;;;;;;;'''++++;:;;;;;;'###@@@@@+,,,,,,,,,,,,,,,,,;#@#++##+';:''''''+@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@##@###+#@###+###+++''+;;+';'+;,;;:::;:::,,,.```.`.````` `````.,.,::;'+''::.:,,,:''#########@#####################++++++++++''''''''''''++++++++++''''++'+#+++++++++++''''''''''''++++++++;'''+++++;;:;';'++++',:'+++++++++++++++++++++++'++++'++##++'+###########+##+''+'''##+''##############+#
;;;;;;;;;'@@##########'';';;,..........`..`...................,,,,,,:::::::;;;;;;;;;'''''++':;;;;;;;;+##@@@@@@;,,,,,,,,,,,,,,,,'#@@++##+'+;'''''+##@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@##@########+####++++';''';'+'+;'''';;;;:,,,..``......`````.,,:;;;::'#++#';::;:;;++###############################++++++++++'''''''''''''+++++++++'''''''+#+++++++++++''''''+++'++++++++++;'++++++++++';;'+++++''+++++++++++''+++++++++++'+++++++##'+#############+'+'''''''+#;,:+############+##
;;;;;;;;;@@#@########+#+';;;,.........``..`..................,,,,,,:::::::;;;;;;;;;''''''+'::;;;;;;;;;+####@@@#:,,,,,,,,,,,,,,,+##@##++':;;'''+'+##@@@@@@@@@@@@#@@##@@@@@@@#@@@#@@@@@@#@##@##@##@#+##;;+';;;'++++++#+;'+:;:,,,,.......`..`.,:.,;';,;'#+'+';;:;:;;'+##########@####################++++++++++'''''''''''''''+++++''''';'++##++++++++++++++++++++++++++++++;'''+++;;++++'''+++++++++++++++++++''''++++++++++++''+###+'+#############+'''''''+';#',:+##########+###+
;;;;;;;:#@@@#@@##########';;:,........``.``.................,,,,,,:::::::;;;;;;;;;''''''+'::::;;;;;;;;;'###@@@@',,,,,,,,,,,,,,,+@####++',::;;+++##@@@@@@##@@@@@@@@##@@@#@@@@@@@@@@@@@@@@#@@@@#@+###@#'+#'+'''#+++#+++''+;+';:::,,,.```.`````..,:,,,;;'''';:::,,:;'++#####@########################++++++++++'''''''''''''''+++++'''';;'++++#######++++++++++++++++++++++''+''++':;++''+++++++++++++':'+++++++++++++++++++'+++++##++++############'''''''+##':+#''##+++#########+#
;;;;;;;#@@#@#@##########+'';;,..........``.................,,,,,,:::::::;;;;;;;;;''''''+':,:::;;;;;;;;;;'##@@@@#:,,,,:,,,,,,,,,+##@#@##+''':'###@@@#@@#@##@@@@@@@@@@@@@@@@@@@@@@@@@@##@#@@@@@#@'++++##+##+#+##''+++++''+';';;:::,,.,`..````...::,,:;;;;++;;:'''+######+###########++##############++++++++++++'''''''''''''++++++''''+#++'+#####+++++++++++++++++++++++';''''++''+++''++++++++++++++'+''+++++++++++++++++++++++##+++###########+'''''''#####+#######+####++#####+
;;;;;;;@@#@#@########+''';'+';,..........................,,,,,,,:::::::;;;;;;;;''''''++';,,:,::;;;;;;;';;##@#@@@',,,,,,,,,,,,,:+##@##@#+#'+'+#####@@@@@@##@@@@#@@@@@@@#@@@@@@@@@@@@@@#####@##@#####+#+'++''+##+++++##+'+';;:;::,,,,,,:,,....``.:::;;;++;'+:'@@@@@@#@@##@##+######+;;'#############++++++++++++''''''''''''+++++++''+####++#++++++++++'''''''''''''''''++'+''++''++'''+++++;'+''+++++++++++++++++++'+++++++++++++#+++#+';;++###+'''''''+++#+++########++++''+++#+;