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
 
Line 1: Line 1:
 +
<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 style="font: 4px/2px monospace;">###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@#####++++''''''''''''''''''''''''''''''''++####@@@@@@@@@@@@@#################################################################################################################################################################
 
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@########++++''''''''''''''''''''''++++#######@@@@@@@@@@@@@#################################################################################################################################################################
 
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@########++++''''''''''''''''''''''++++#######@@@@@@@@@@@@@#################################################################################################################################################################

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	
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@#####++++''''''''''''''''''''''''''''''''++####@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@########++++''''''''''''''''''''''++++#######@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########+++++++++##########@@@#@@@@@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################################################################################################################################################################
###################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#@@@@@@@#@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@###@#@@@###@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@##@@@@@##@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@#''+###@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@##@@@@@@@@@################################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@+;;;;;;;'++##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##++'';'#@@@@@@@@@###############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@+'';;::::::::;;''++#######@@@@@@@@######++''';;::::;;;;#@#@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@#@@+'';;;::::::::::,,,::::::::;;;;;;;:::::::,,:::::::;;;;;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;:::::::::::::::::,,,,,,,,,,,,,::::::::::::::;;;;;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;::::::::::::::::::::::::::::::::::::::::::::;;;;;#@@@#@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+''';;;::::::::::::::::::,,,,,,,::::::::::::::::::;;;';#@@#@@@@@@@##############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+''';;::::::::::::::::::,,,,,,,,:::::::::::::::::::;;;;+@@#@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+'';;;''';::,,:::::::::,,,,,,,,,:,,::::::::,:::;;;;;;;;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@+;''########+;:,,::::,,,,,,,,,,,,,:::::::::'+#######';;#@@@@@@@@@###############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@#@+;+##+'''''+#@#+:,,::,,,,,,,,,,,,,:,,:,:;+##+'''''+@@+;#@#@@@@@@@@##############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@#+@#'++++''';'+@@+:,,,,,,,,,,,,,,,,,:,;##+';'''++''+#@+#@@@@#@@@@@##############################################################################################################################################################
###############################################################################################################################################################################################################################+##@@@@@@@@@@@@#@@@##'++++++++'';;+@@':,,,,,.,,,,,,,,:;##+;;''''+++++'+@@@@@#@@@@@#@##############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@#++++++##@@@@@#+'+@#;,,,.....,,,,:+#+;'+#######++++'+#@#@@@@@@@@@##############################################################################################################################################################
##################################################################################################################################################################################################################################@@@@@@@@@@@@@@@##@####@#;+@@++#'#+;#@+,......,,,;##;;##+@@#@+'#@##+###@@@@@@@@@@@##############################################################################################################################################################
#################################################################################################################################################################################################################################@@@@@@@@@@@@@@@@++@@@@#: `#@@+#@..'#:;:,,......,;#':'@;.'@'+@#.`:#@#@@+#@@#@@@@@@@##############################################################################################################################################################
##############################################################################################################################################################################################################################+#+@@@@@@@@@@@@@@@@+'#@@#,  .#@@@@@, `'#,,,,.....,,,::'#, `#@#@@@:  `+@@#'#@@@@@@@@@@##############################################################################################################################################################
##############################################################################################################################################################################################################################+##@@@@@@@@@@@@@@@@+'++#@'.  ;@@@@'`   '',,.......,::;#,   '@@@@@.  .+#+';+@@@@@@@@@@##############################################################################################################################################################
######################################++++++++++++++++########################################+#######################################++++++++################################################################################+##@@@@@@@@@@@@@@@#+''''+@#'.`:++;``,;'##:,.......,,:+#';, .'@##, .'@#';';+@@@@@@@@@@##+########################################+###############################+##################################################################################
######################################++++++++++++++++########################################++######################################++++++++##############################################################++##########++####+##@@@@@@@@@@@@@@@#'''''';+##+;;:;;##+':+;.......,,,:#'+##+;::;:;+##';;;;;+@@@@@@@@@@##+########################################+###############################++##########################################++#####################################
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@#''';;;;;;;'+###+';::,::........,,:'::::'+#++##';::;;;;;'@@@@@@@@@@@#+#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
######++##############################++++++##++++++##################+++#++######++##########++++++##++##++##++################++++##++##++##################################################################++##++++++##++#####@@@@@@@@@@@@@@@#'';;;:::::::::::::::,,,,.......,::::::,,,::::::::::::;;'#@@@@@@@@@@##########++##++##############################################++##########++######################++##++##############++################+++++#++#############
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###@@@@@@@@@@@@@@@#'';;:::::::::,,,,,,,,,,,.......,:::::,,,,,,,,,:::::::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@#'';;:::,,,,,,,,,,,,,,,,,.......,,:::,,,,,,,,,,,,,,,::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@+'';;:::,,,,,,,,,,,,,,,,,.......,,:::,,,,,,,,,,,,,,,:::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+#@@@@@@@@@@@@@@@+'';;::,,,,,,,,,,,,,,,,,,.......,::::,,,,,,,,,,,,,,,:::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,:::,,,,,,,,,,,,,,,,::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,::,,,,,,,....,,,,,,::;;#@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,::,,,,,,......,,,,:::;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,,,,,,,......,,,,,,,,,,......,,,,,::;;#@#@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@#'';::,,,,,,,..,,,,,,,,,,,......,,,,,,,,,,.......,,,,::;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@#'';;:,,,,,,....,,,,,,,,,,......,,,,,,,,,,.......,,,::;;;#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@#'';;:,,,,,,,..,,,,,,,,,,,,.....,,,,,,,,,,......,,,,::;;'@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@#'';;::,,,,,,..,,,,,,,:,,,,,,,,,,,,,,,,,,,.....,,,,,::;;'@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@+'';::,,,,,,,,,,,,,,::,,,,,,,,,,,,::,,,,,,....,,,,:::;;+@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@+'';;:,,,,,,,,,,,,,,;;:::::::::::,:;,,,,,,,,,,,,,,::;;;#@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@+'';;::,,,,,,,,,,,,,;';;;;;;;;;;:::;,,,,,,,,,,,,,:::;;;#@@@@@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@#''';::,,,,,,,,,,,,,:++#+'''';;+';;:,,,,,,,,,,,,::::;;'@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@#@@@@@@@@@@@#@@+'';;::,,,,,,,,,,,,,;''++''''++'';,,,,,,,,,,,,,:::;;;+@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@#'';;:::,,,,,,,,,,,,,::;'+++''::::,:,,,,,,,,,:,:::;;;#@#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@#@@@@@@@@@@@@@''';;::::,,,,,,,,,,:,::::;:::::,,:,,,,,,,,,,::::;;;+@@#@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@#'';;::::,,,,,,,,,,::::::::::::::::,,,,,,,,::::;;:;#@#@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@+;';;:::,,,,,::::::::::::::::::::::::,,,::::::;:;+@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@#''';;::::,:::::::::;;;;;::;;;;:;::::::::::::;;;'@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@#@#@@#@#'';;;::::::::::::'###+';'###+';;;;:::::::::;;'@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##@@@@@@@@@@@@@@@@@@@@@@@#;;';:::::::;+''##@@@#####@@###++'::::::::;:;#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@+';;;::::::;+#@@@@@@@@#@@#@@@@##';::::::;;:#@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@+;;;:::::::;'+###++#@@#++####+;;::::::;::+@@@#@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@';;;:::::::;;;;;::;'';::;;';;::::::::::'@@#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@#';::::::,:;';;;;;;;;;;;''''':::::::::'@@@#@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;:::::,:,:+''''''''''''''';::::::::'@@@@@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::,:;+++'++++''''++;::::::::'@@@@@@#@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::,:::;'+++++'++++';::::::::'@@@#@@@@@@@@@@@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'::::::::::;;''''''';:::::::::+@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@';:::::::::::::::::::::::::,:+@@#@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;::::::::::,,,,:::::::::::+@@#@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:;;:::::::,,,,,,,,,:::::::'@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::::::,,,,,,,,,::,:::;'@@@@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:::::::::::,,,,,,,,,,:::;;;'@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:::::::::::::,,,,,,::::;;;:+@@@@#@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+::::::::::::::::::::;;;;;;:+@@#@@@@@@@@@@@@@@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+:::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@#@@@@#@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@@#@#@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@#@@@@@@@@#@@@@@@@@@@@@@@@@@@@#@#::::::::::::::::::::;;;;;;;:+@@@@@@@@@@@@@@@#@@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@+:::::::::::::::::::::;;;;;;:'@@@@@@@@@@@@@#@##@@@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@'::::::::::::::::::::::::;;;:'@@@@@@@@@@@@@####@#@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;::::::::::::::::::::::::::::;@@@@@@@@@@@@@####@#@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#'::::::::::::::::::::::::::::::+@@@@@@@@@@@###@###@@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:;;::::::::::::::::::::::::::;:+@@@@@@@@@@@###@####@@@@@@@@++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@@@@@@@#@@@@@#@@@@@@@@@@@@@@@@@@@@';;;;;;:::::::::::::::::::::::;:;@@@@@@@@@@@@#####@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';'++##@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@#';;;;;;;;:::::::::::::::::::::;::+@@#@@@@@@#######@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;:;;;'#@@@@#@@@@#@@@@@@@@@@@@@@@@@#@#+;;;;;;;;;;;::::::::::::::::;;;;;#@@@@@@@########@@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;;;;;;:;'#@@#@@@@@@@@@@@@@@@@@@@@@@@##@#+';;;;;;;;;;;::;;;;;;::;;;;;;;:;#@@@@@@#########@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';;;;;;;;;;;;::;+@@@@@@@@@@@@@@@@@@@@@@@@#####@@+';;;;;;;;;;;;;;;;;;;;;;;;;;;;#@@@@@@@#########@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++####+';::;;;;;:;:;;::;;;;#@@@@@@@@@@@@@@@@@@@@@@@@####@@@@#+';;;;;;;;;;;;;;;;;;;;;''#@@@@@@@@@#########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';::,...:;;;;;:;;:;::::::;:#@@#@@@@@@@@@@@@@@@@@@@#####@@@@@@@@##+'';;;;;;;;;;;''++#@@@@#@@@@@@@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###+';:,..........:;;;;;;;::::::::::;;#@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@#####+######@@@@@@@@@@@@@@@@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###'';:,........`......:;;;;;;::::::::::::::+@@#@@@@@@@@@@@@@@@@@@@####@@#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@#@@@#@@########@@@@@@@#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''';;;;;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++###++';:,....................:;;;;;;:::::::::::::::'@@#@@@@@@@@@@@@@@@@@@@@#######@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@#@@@@########@@@@@@@##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;::,,..,,,,,,,,,,,,,,
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+++';::,,.....................```,;;;;;;::::::::::::::::'@@@@@@@@@@@###@@@@@@@@@###@###@@@@@@@@@@@@@@@@@@@@@##@@@#@@#@##@@@#@@@#######@@@@@@@@@+'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,.```````.,,,,,,,,,,,,..
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#++';::,,,.......................`````.:;;;;;:::::::::::::::::;#@@@@@@@@@@##@@@@@@@@@@###@##+#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#'#@@@@@########@@@@@#@@@+;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,.``..`.......,,,,,,,........
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,....,,,,,,...............`.....```````,;;;;;::::::,,,,,:::::::;#@@@@@@@@@###@#@@@@@@@#########@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#;#@@@@@########@@@@@@#@@#::;;;;''''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';,.``..........,,,,,,,,,,,,.........
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#++';,....,,,,,...........................````````.;;;;;:::::,,,,,,,,:::::::+@@@@@@@@@##@@@@@@@@@@@##@######@@@@@@@@@@@@@@@@@@@@@#@##@@#@@'+@@@#@@########@@@@@@@@#:;;:::;;;;;;;;''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+';:,......`..,,,,,,,,,,,,,,,...............
;'''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,........,,,,,,,......................````````````.,;:;::::::,,,,,,,,,,::::::'@@@@@@@@@##@#@@@@@@@@##@###+####@@@@@@@@@@@@@@@@@@@@#@#####@@+#@@@@@########@@@@@@@@@#:::;;::::;;;:::;:::;'+#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,........,....,,,,,,,,,,,....................
.....,..,,,:::;;;;'''''+##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,,`````.,,,,,,,.............................````````..`..,:;;;;::::,,,,,,,,,,,::::::;@@@#@@@@@#@##@@@@@@@@@@########@@@@@@@@@@@@@@@@@#@@#######@#@##@@@@#########@@@@@@@@@#:::::;:,,:::::::::::,,,;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,..........,,,,,,,,,...............................
,,,,,,......................,,,,::::;;;;''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';,,.````........,,,,,,,...............`....``````````............,;;;;::::,,,,,,,,,,,,,::::::#@##@@@#@#@##@@@@@@@@@#######@#@@@#@@@#+#@@@@@@#+@@#######+@@@@@@@#@#########@@@@@@@@#:::::::::::;:::::::::::,,,:'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';:,,...............,,,,,,,,,................................
,,,,,,.,...,....................................,,,,,::::;;;''++++++######++++++++++++++++++++++++++++++++++++++++++++++++++';:,.`````````..,,,,,,,.......................```````````.````..,,,,,,,,,:;;;;:::,,,,,,,,,,,,,,,:::::'@@@@@@#@#@##@@@@@@@@@#@####@#######@@#+#@@##@@#+#@###@###'#@#@@@@@##########@@@@@@@@#::::::::;;;:;;::,,,,,:::,,,,,;+#+++++++++++++++++++++++++++++++++++++++++++++++++++#++';::,..,,,,,,,,,,...................................................
,,,,,,,,,..,,,............................................,,.,.....,,,,,,::::::;;;;;;'''''++++#++##++#++++++++++++++++';:..````````........,,,,,,,.........................................,,,,,,,,,,:;;;::::,,,,,,,,,,,,,,,:::::;@@@@@@@@###@@@@@@@@@@@#+##@###@#@+#@@#'#@@##@@#'#@@##@###'+@@@@@@@##########@@@@@@@@#:::::::::;::::,,,,,,,,:::::::,,:'+#++++++++++++++++++++++++++++++++++++++++++++';:,..........,,,,,,.......................................................
,,,,,,,,,,,,,,,,,......,,,,,...............................,,....,,,..,,,,,,,,,,,,,,.,,,::,,,,,,,::::;;''''+++++';:,.`````````````..,,,,,,,.................................,...,,,,,,,,,,,,,,,,,,,,,;;;;:::,,,,,,,,,,,,,,,,,::::;#@@@@@@@###@@@@@@@@@@@+:+@@#+####'#@@#'#@@##@@@+#@@#++@#@''#@@@@@@###@######@@@@@@@@#::::::::::::,,,,,,,,,,,,::,::::,,,:'++#++++++++++++++++++++++++++++++'';;::,,.........,,..................................................................
,,,,,,,,,,..,,,.........,...................................,,...,,,,,.,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,........`..```..........,,,,,,,...................................,,,,,,:,,,,,,,,,,,.....,;;;;:::,,,,,,,,,,,,,,,,,,:::;'@@@@@@@@###@@@@@@@@@@;,+@#@###@#;#@@#'#@@##@##++@@@+;##@+:+@#@@@@##########@@@@@@@@+::::::::::;;::::::::::,,,,,.,,,,,,,...,;;;''+++++###++''''';;;;::,.........,,.,,,..................```....................................................
..,,,,.,,...,........................................,.......,,,,.,,,,,,,,,,,,,,,,.,,,,,.............,,,,,,,,,,,,,,.,,,.,,,,,,,,,,,,...............................................,,,,,,,,,,,,.....,;;;;:::,,,,,,,,,,,,,,,,,,:::;;#@@@@@@@@##@@@@@@@@@#::#@@@#@#@+;#@@#'@@@##@+#++@@@#;####:;@@@@@@@#########@@@@@@@@+::::::::::;;;;::;:::::,.,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........................................................................
,..,,,,,,.............................................,.,.....,,,.,,,,,,,..,,,,,...,.....................,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................................,;;;;:::,,,,,,,,,,,,,,,,,,::::;+@@@@@@@@@#@@@@@@@@@+,'@#@#+#@@+:#@@+;#@@#+#+++;#@@#:'@#@;,#@@#@@@########@@@@@@@@@+:::::::::::,..........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,.......................`...................................................
,,.,,,,..,,...,................................................,,..,,..,,,.,,.,,,,,...................................,,,,,,,,,,...,...............................................``...............:;;;;:::,,,,,,,,,,,,,,,,,,,::::;###@@@@@@@@@@@@@@@@':+@@#+;#@@;,#@@':#@@#+#'+':#@@#::@@@+,'@@#@###@##@###@@@@@@@@@':::::::::::.``````````..............................................................................``....................................................
................................................................,..,,,,,,,,,.....,.....................................,,,,,,,,,.......................................................`............:;;;;:::,,,,,,,,,,,,,,,,,,,::::;'@@#@@#@@#@@@@@@@@#;'#@@#';#@@:,#@@',#@@#'+##+.'@@@;.#@@#:;#@@@@@@@####@@@@@@@@@@@'::::::::::::.`````..................................................................................`.....................................................
...........................,,...,................................,,,,,,,..,,.......................................,,...,,,,,,,,,,..................................................................:;;;;:::,,,,,,,,,,,,,,,,,,,:::::;#@@#@@@@@@@@@@@@@#;+@@@#;'#@#,,#@@;,#@@+;##@+.;@@@;.+@@@':+@@@@##@###@@@@@@@@@@@@;::::::::::::.............................................................................................................................`...........,,...
.........................................,........................,...,...,,...................................................,,,..................................................................:;;;;::::,,,,,,,,,,,,,,,,,,,,:::;'#@#@@@@@@@@@@@@@+'#@@@+''@@#.,@@#,.#@@+;#@@#.,@@@'.'@@@+:+@@@@@#####@@@@@@@@@@@@;::::::::::::,.................................................................................................................................,,,,,,,,,,,,
.......................................,,,,,.......................................................................................,................................................................:;;;;::::,,,,,,,,,,,,,,,,,,,,:::;;+@@@@@@@@@@@@@@#''#@@@+'+@@+`:@@@,.#@@+:#@##..#@@+.;@@@#;'@@@@@###@@@@@@@@@@@@@#::::::::::::::.........................................................................................``.................................,,,,,::::::::::::
....................................................................................................................................................................................................:;;;;::::::,,,,,,,,,,,,,,,,,,:::::'@@@@@@@@@@@@@@#'+@@@@+'#@@+.;@@@,,#@@+:#@#@,`+@##,:#@@@''@@@@@###@@@@@@@@@@@@@#::::::::::::,:,...................................................................................```````.............................,,,,,,,,::;;;;;;;;;;;
....................................................................................................................................................................................................:;;;;:::::::,,,,,,,,,,,,,,,,,,::::'@@@@@@@@@@@@@@#;+@@@#++#@@',+@##,,#@@+;+@@@;`'@#@;:#@@@+'@@@@@###@@@@@@@@@@@@@+::::::::::::::,...........................................................................````````````````.........................,,,,,,,,,,,:::::::;::;;:
......................................................................................................................................,.............................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,::::;@@@@@@@@@@#@@@+'#@@@#++@@@',+@@#::#@@#;#@@@'.'@#@':+@@@#'@@@@@###@@@@@@@@@@@@@'::::::::::::,:,...........................................................................```````````````.........................,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................................................................................................,,,,,......................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,,:::;@@@@@@@@@@@@@@+'@@@##++@@@':+@@@;;@@@#'##@@+,'@@@#:'#@@#'@@@@@@##@@@@@@@@@@@@@;::::::::::::,:,...................................................................................................,,,,,..,,,,,,,,,,,,,..,,,,,,,............
.........................................................................................................................................,,,,,......................................................,;;;;;:::::,,,,,,,,,,,,,,,,,,,,,::;#@@@@@@@#@@@@@++#@@@#+#@@#;;#@@@''@@@#'+@@@#:;#@@#;;#@@@+#@@@@@##@@@@@@@@@@@@#:::::::::::::,,,..............................``.....``....`.........................................,,,,,,,,,......,,,......,,,,,,,,,,,,,,,,,,,...,...,,,,.
...................................................................................................................................................,................................................,;;;;;::::::,,,,,,,,,,,,,,,,,,,,:::@@@@@@@@@@@@@@+#@@##++#@@#;;#@@#;'@@@#++##@#;:#@@@':+@@@##@@@@@#@@@@@@@@@@@@@#:::::::::::::,,,...............................`.....`.................................,.,,,,,,,,,,,,,,,:,,,,,,,,,.........,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..................................................................................................................................................,...............................``````````````.....:;;;;::::::,,,,,,,,,,,,,,,,,,,,,::#@@@@@@@@@@@@@+#@@##++#@@#;'#@@#;'@@@#++#@@#;:#@@@':+@@@##@@@@@@@@@@@@@@@@@@@':::::::::::::,,,......................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,..,,.,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,
......................................................................................................................................................,,..........................```````````....,,,,:;;;;::::::,,,,,,,,,,,,,,,,,,,,,::#@@@@@@@@@@@@@#@@@@###@#@#''@@@#;'##@#++#@@#;:+@@@+;+@#@@@@@@@@@@@@@@@@@@@@@@;:::::::::::::,:,...........................,...,,,,,,,,,,,,,,,,,,,,,,,,..,,...,,.,,....,,,,,,...,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,
........................................................................................................................................................,.....................................,,,,,,,:;;;;::::::,,,,,,,,,,,,,,,,,,,,::,+@@@@@@@@@@@@@#@@@@###@@@#'+@@@#;'@@##++++##':+@@@#''#@@@@@@@@@@@@@@@@@@#@@@+:::::::::::::,,:,................................,................,,,,,,,.,,....,,,,,,,,,,..,,,..,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::,,,,,,,,,,,,,,,,,,,,,::,'@@#@@@@@@@@@@@@@@@##@@@@#+#@@@#''##+####+++';'@@@#''#@@@@@@@@@@@@@@@@@@#@@@;:;::::::::::::,,,.................,,,,...,........................,,.,,,,........,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::,,,,,,,,,,,,,,,,,,,,::::;#@@@@@@@@@@@@@@@@@@@@@@@#+#@@#@######++#++++++@@@@++#@@@@@@@@@@@@@@@@@@@@@+:;;::::::::::::,,,.................................................,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...........................................................................................................................................................,,,...,,,.,,,..,,,,.,,,,......,,,,,..,,,,,,;;;;;::::,,,,,,,,,,..,,,,,,,,:::::+@@@#@@@@@@@@@@@@@@@@@@@###@@@#######+#+++++++#@@@#+#@@@@@@@@@@@@@@@@@#@@#;::;::::::::::::,,,..................................,,,,,,,,,,,,,,,,,......,,,.,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.............................................................................................................................................................,.......,.....,.,,,,,,,......,,,,,,,,,,,,:;;;;;:::,,,,,,,,,,....,,,,,,:::::;@@@#@@@@@@@#@@@@@@@@@@###@@@@######+++++++++++#@#####@@@@@@@@@@@@#@@@@@#;:::;::::::::::,:,:,......................................,,,.,,...................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..............................................................................................................................................................................,,,,.,,,,,..,,,.,,,,,,,,,;;;;;:::,,,,,,,,.......,,,,:::::::'@@@@@@@@@#@#@@@@@@@@@@@#@@@@#######++#+++++++#@@###@@#@@@#@@@@@@@@@@@#;:::::::::::::::::,,,............................................................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................................................................................................................................,,...,,,..,,,,,,,,..,,,.,,,.,;'';;:::,,,,,,,.........,,,::::::::;'####+;;'@@@@@@@@@@@@@@@@@@#######+++++#++++#@@@####@@#@@@@@@@@@@@+;;,,::::::::::::::::,:..........,.................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................................................................................................................,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..:';;;:::,,,,,,,.........,,,:::::::;;:,,.`` .:+@@@##@@@@@@@@@@@##+##++++++##++++++@@@###@@#''######';;'',,,,:::::::::::::::,,,............................,,,,,,,..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.,,,
..........................................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;';';;:::,,,,,..........,,,::::;::;'':.` ``.::'#@@@@@@@@@@@@@@#+++#+++++#+:.;++++#@@####+';;;+':,,.` `.:,,,,::::::::::::::,,,........................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,..,..,,.,,,....................,,,,,,,,,,,...................
............................................................................................................................................,,,,......,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;#'';;:::,,,,,...........,,::::::::'+':````.;:;;'#@@@@@@@#@@@@#+++++++++++.`:++++#@@@#+';;;;;+#':,.``  .,,,,:::::::::::::::,,.....................,,,,,,::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,.,..................................,......,,...................
...........................................................................................................................................,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;@';;;;::,,,,,...........,,::::;;::'''+,```.:::;:;'#@@@@@@@@@@#+++++++++#+':'++++#@@#';;;;;;:'#+;:.``` `,,,,,:::::::::::::,,,.,,,,,,,,,,,,,,,,,:,,:::::,::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,..................................,......,,...,...............
.................................................................................................................................,....,,,.,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'@+;;;;::,,,,,...........,,:::::::;'''';:,..::::::::;'##@@@@@@#++++++++#+++#+++++#+;;;;;;;:::'#;:;,.  `.,.,,,,::::::::::::::::::::::::::::;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,.............................,,,.....,,,,,,,,,,,,,,,,,,,,..,,,,
.....................................................................................................................................,,..,,.......,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@#';;;:::,,,............,,,::::::;'''';;';,:::::::::::;;'+######+++#++++++++++++;:;;;;;::::,'+;;:::```.....,,,::::::::::::,:;;;;;;;::;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,...........................,,,,....,,,,,,,,,,,,,,,.,,,.....,,,
.....................................................................................................................................,,...,......,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@#';;;:::,,,,...........,,,:::::::'''';;;';:,:::::::::::::::::+#+#++#+++++++++#';;;:::::::,,'+;;:::,,......,,,::::::::::::::;;;:::::::::::::::::::::::::,,,,,::::::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,.....,,,,,,,,,...,,...........,.
...................................................................................................................................,,,,,...,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@+;;;:::,,,.............,,::::;::'''';''';,:,,,,,,,::::::::,,;##+#+###++#++++#;::::::::,,,,;';;:::,:;......,,,:::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,...................................,,,,.,,,,,,,,,,,.........,,
...................................................................................................................................,,.,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@#;;;;::,,,.............,,:::::::''''';'';,,,,,,,,,,,,,,,,,,,,+#++##++##++++#+::::::,,,,,,.:';;::::;:.......,,::::::::::::::::::::::::::::::::::::::::,,:::::,,,:,:::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,,....,,,,,,,,,,....,,........,,,
...................................................................................................................................,,.,....,,,.,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@';;;::,,,.............,,,::::::;''''++':,,,,,,,,,,,,,,,,,,,,,+#+++##++++##+:,:::,,,,,,,,.,;;;;::;;:........,,::::::::::::::::::::::::::::::::,:::::,,,::::,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,...................................,,,,.,,,,,,,,,..........,,,
..............................................................................................................................,....,,,,....,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,#@@@+;;;::,,,.............,,,,::::,,:;;';;,,,,,,,,,,,............:+#+#+#+##+#+:,,:,,,,,,,,....,;';;;;:..........,,::::::::::::::::::::,:::::::::,,::::::,,:::::,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,............................,,,...,,,,,,,,,,,,,,,..,,,.,,..,,,
.............................................................................................................................,,..,,,,,......,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@#';;:::,,..............,,,:::;:::,,,,,,,,,,,,,,...............,'########':,,:,,,,,,,,.......,::,,...........,,:::::::::::::::::,::,:::::::::,,::::,,,,:::::::::::::::,:::::,,,,,,,,,,,,,,,,,,,,,,,,,..,,.............,.....,,,,,..,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................................................................................,,..,...,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@';;;::,,..............,,,:::::,,,,,,,,,,,,,,...................,'++++;:,,,,,,,,,,,,,........`...............,,:::::::::::::::::::::::::,::::,,::,,:,:::::::::::::::,,::::::::,,,,,,,,,,,,,..,,...,,..,,..............................................................
..........................................,.............................................................................,,,.............,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,#@@@@+;;:::,,,..............,,:::::,::,,,,,,,,,,.....`..`.............,,,,,,,,,,,,,,,,,,,.........................,::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,,::::,,,,,,,,,.....................................................................``...
...........................................................................................................,..,,,.,,,...,,,,,.,,.,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@+;;;::,,,..............,,:::::,,,,,,,,,,...,,,:;:;;;,,.``..........,,,,,,,,,,,,,,,,............``............,,:::::;:::::::::::::::::::::::::,:::::::::::::::::::::::,::::::,,::,,,,,,,,,,,.........................................................................
........................................................................................,..,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@#;;;:::,,...............,,:::::,:,,,,,,,:;+###@@##@@#++::,.......,,,,,,,,,,,,,,,,............```.`.`..........,,:;:;;;::::::::::::::::::::::::::::::,,:::::::::::::::::,:::::::,:,::::,,,,,,,,,,,,...................,,...,,,,,,,,,,,,,::::::::::::::;;;::;;;:::;;;''
,,.............................................,,......................................,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@';;:::,,...............,,:::::,,,,,,:'##@#@###'++##+##+++':......,,,,,,,,,,,,,,,.........`.`````..```.,,,;;;;::::;;;;:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::,::::,,,,::,,,,,,,,..........,,,,,,,,,,,,,,:::::::,,:::::;;;;;;;;;;;'''';''''''+++++
,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.....,,,....,,,,,,,,,,......,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@+;;:::,,,..............,,:::::,,,:'#@@####@#++++#@#'+#+;+#+;,.....,,,,,,,,,,,,,,.........``.``..```.;'+++####+'''+;;;:::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::,,::,,,:::::::::,,,,,,,,,,,,,,,,,,,:::::::::::::,:::::::::::::::::::::::::::::;;;::
..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,..,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@#;;;::,,,...............,:::;:,:'#@@@@######++++###+'+#';;;;';:,..,,,,,,,,,,,,,,,.........``..```.;#@#++@##+++'+#+'';:::::::::::::::::::::::::::::::::::::::,::::::::::::,,:::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::
.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+@@@@@#';;::,,,...............,,::::;+#@@#@##+'++++#++#+##''##+#''';;:,...,,,,,,,,,,,,,........`.``.`.:+#@#####++++'''+''';:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::,,:::::::,,::,,,::::::::::::::::::::::::::::::::::::;:
......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,+@@@@@@';;:::,,...............,,::::'@#@####+#++++';;+++'+'++#';;;;:;;::,,,,,,,,,,,:,,,........``.``.'@@##@###+#+'''''+''+;:::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::,,,::
.......,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,:,,;@@@@@@+;;::,,,,.............,,,::::;###@###+++''';;';;+':;;;;++'+'++;::,,,,,,,,,::::,,,.......``.`.+########+'+'''''+'''''::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,
.....,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,;@@@@@@#;;;::,,,.............,,,::::;#####+++''''''';;;';;:;:,;''';;;;';;::,,,,,,::::,,,.........`.+@######+'''';;'''';;''';:::::::::::::::::::::::::::::::::::::::::,,:::::::::::::,::::::::::,::::::::,,:::,,:::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,
,,,,,,,..,,.......,.,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,:::,,:@@@@@@#;;;::,,,,............,,,:::::####+'''';';::,:;;:,;;,,::,;''';;;;;:::,,,,::::::,,,.......`.+@@#@++'+++'''';;;;;;;;;';:::::::::::::::::::::::::::::::::::::::::,,::::::::,:::::::,:::::::,,,:::::::::::::::::::::::::::::,:::::::::::::,,,::::::::::::,,::::,,,,,,,:
,,,,,,,,,,,...............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,:,:#@@@@@@';;::,,,,............,,,:::::+@####';'';;:::;::;:,:,,,.:;::::';:;;:::,::::::::,,,,.......'@@###+##+';;;;;::::::::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::,,:::::::::::::::::::::::::::::::::::::,:,,,::,,:::::::::::::,,:::::::,,,,:
::::,:,,,,,...,...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::+@@@@@@';;::,,,,............,,,:::::'###++''+';';;:';;:,,,..,.,,.:;;';;;:::::::::::::,,,,......;@#######+''';;::::,,,,:::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::,,::::::::::::::::::,::::::,,,,,:::::::::::,,,,::::::::,,,,,,,,
:::::::::::,,,,,,,,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,::::'@@@@#@+;;::,,,,............,,,:::::;###+';'';;;;:;;:;::,.,....,,,.,;;:;'';;:::::::::,,,,,....:#@@@#@#++''';,.,,,,..,,:::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::,,,,:::,,:::::::::::::::,,,,,,:::,,,,,,,:::,:::::::,,::,:::::::,,,,,,,,
;;;;;::::;::::::::::::,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,,:;@@@@@@#;;::,,,,,...........,,,:::::;###''';;;';;:;;;::,,.....``.,,,,::::'':::::::::::,,,,..,:@@#@@##++';;:,,,..,....,,,:::;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,:::::::::::::,,,:,,,:::,,,,,,,:::,:::::::::::::::::::,,,,,,,,
';;;;;''''';;;';;;;';;;;;;;;::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::,,,,,:::::::::,,::@@@@@@#;;;::,,,,...........,,,,:::::+#+''';;'':,;;;;::,,,.`.....``..::;;;;;;:::::::::,,,,,,;#@@@###+++;;::,..``.```....::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,:::::::::::::::::::,::::::::::::::::::::::,:::::::::::::::,,,,
';;'''++++++++++++++++'+++++';'';;;;;;;:;;;;:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,::,,::::,::::::::::::::,:::::+@#@@@#;;:::,,,,,..........,,,,:::::'+#+''';'';;;:;::,,,.`...`..`` .,,:;;:';;;::;:::,,,,,:;+@@@@##+'+';:,..``````````.,,,::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
''''''''++++++++++++++++'++''''''';;';;;;;;;::::::::,,:::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::::::::::::::::::::,:::,:'@@#@@@';:::,,,,,..........,,,,:::::++'+';''';;;;::::::,,......````...,,;;';;;;::::,,,,:;'++##@###+'';;::,.`````````.,,,::;';::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'''''';''';'''''''''''';;;;;;;;'';;;;;;;;;;;;;;;:::::::;:::::::::::::::::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,::::::::,::::,,:::::::::::::::#@#@@@';;::,,,,,..........,,,,:::::+#+;'';';;::;;:::::,,,......`````.,,:;'';'';;::::;;;'+####@#++'';;::,....```````..,::::;'::::::::::::::::::::::::::::::::::::::::,::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;::::::::::::::
''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,:::::::::::::::::::::::::::::,'@@@@@+;:::,,,,,,.........,,,,:::::'#++''+'';:;;::::::,,,,``...``````,,:::;;';;;;;;;'''''+''+++''';:::,,..`````````..,:::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:::
;;;;;;;;;;;;;;;;;;;;;;;;''';;;';;;;;;;;;;;;;'''''''''''';;;;;;'';;;;;';;;;;;;::::::::,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,::::::::,::::::::::::::::::::::::::::+@@@@+;:::,,,,,,.........,,,,:::::'+''';;;';;;:::::::,,,.....`..` ```.,:;;;;''';;;;;;'''+'+''+'';:::,,,..``.``````.,::::::':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::,,,::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;'''';;;;;;;;;;;;''''''''''''++'''''''''''''''''';;;''';:;;;;::::::::::,,,,,,,,,,,:,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,.,,,,,,,.,,,,,,,,:,,::::::,,,:,,::::::::::::::::::::::::+@@@#;::::,,,,,.........,,,,:::::;++'''''';;;:::::,,,,..`......`````..,:;;;+';'';;;''''''';''';;:::,,..`````````,,:::::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:;;;;;;;;;;;;;;:;;;;;;;;;;:;;;:,,,::::,,,,,,,::,..............,.........
''''''''''';;;;;;;''''''';''';;''''''''''''''''''''''''''''''''++++'+++'''''';;;;;;;;;;;;;;;;:;:::::::::::::;::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,:::,,..,,,,,,,,,,,,,::,,,,,,,::,,,,,,::::,,::::::::::::::::::;+#@#;;:::,,,,,.......,,,,,,:::::;'+'''''';;;::,,::,,,,.`.....`.`````.,::;'+;;'''';'''';'''';;;:::,,,.`````````.,,::::::;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::;::::::;;:..,,,,,,,,,.,,,,......................``.
''';;'''''';;;;'';;;;;''''''';''''''''''''''''''''''''''''''''''''+'''''''''''''''''''''''''''''''';;;;;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,::::::::::,,::::::::::::::::::::;'+;;:::,,,,,......,,,,,,,:::::'+'''';''::;:,:::,,,,..``.```````` `.,:;;'';'+'+'';;;'';';;;;;:::,,.````````..,,:::;:,:;;;:::::::::::::::::::::::::::::::;;;;;::;::::;;;;;;;;;;;;;;::;;;:;;;::::::::::::::::::::,,,,,,,,,:,...,.....................................
''';;'''''''''''';;;;;;'';;''''';;''';;;;;;;;;;;;';'';'''''''''''''''''''''''++''''+''+++++++++++++++''''';;';:::;;:::::::,:::,,,,,,,,,,,,,,,,,..,,,,,,,,,,,:::,,,,,,,,,:,,,,::::::::::::::::::::::::::::::::::::;;:::,,,,,.......,,,,,,:::::;''++';'';;;::::,,,,,.....`````.`````,,:;;;''+'''''';;'';;;;;;:::,,....`.,...,:;:::::,:::;;;;;:::::::::::::::::::::::::::;;;;;:;::::::::::::::::::,,,,,,,,,,,,,,,,,,................................................................
'''''''''''''''''''''';;;;;;''''';;;;;;''''';;'''''''''''''''''''''''''''''''''''''''+++++++++++++''''''''''';;;;;;;;;:::::::;:,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::;;:::,,,,,........,,,,,:::::;+''''';;;;:;:::::,,,......``.``````.,,:;;'+'++'''''';;';;';;;:::,,,,...,,,,,::::;::::;:;''''';;''''''';;;;;;;;;;;;;;;;;::::::::::,,,,,,,...........................................................................................
'''''''''''''''''''++';;;;;;;''';;;;;;'''''''''''''''''''''''''''''''''''''';''''''''''';''';'''''''';'''''';;;;;;;;;;;;;;;;;;;;:;;;;;:::::::::::::,,,,,,,,,,,,,,,,..,:::::;;::::::::::::::::::::::::::::::::::::;;;:::,,,,.........,,,,,::::;++'+'';;;;:;;::::,,,,,.`..`````....,,,;;;'+++#++++'';;';;';;;:::,,,,.,,,,,::;::;;::::;;'++++'''++++''+'';''''';;;;;;:;;:.,,,,,,,,.............```..````.````````````````````````...................................................
''''''''''''''''++'++''''''';;';;;'''''';;'''''''''''''''''''''''''''''''''';'''''''''''''';;''';''';;'';;;'''''';'''''''''''+''''+''';;;;;;;';;:::::::::,,,,,,,,,::,,::,:;;;;::::;;::;::::::::::::::::::::::::::;;;:::,,,,.........,,,,,::::;+'++'';;;;::;::::,,,,...`...`..`...,,,:;;''+#++##+'::;';'';::::::,,,,,,,::;:;;;::::::';';;;;;;;;;;;;;;;::::::::::::,,::,...........................................................................................................
''''''''''''''+'++'++'''''''';';;''''''';;'''';''''''''''''''''''''''''''''''''';;''';;''''';;'';''';;;;;;;'''''''''+++++++++++++++++''''''''++;:;;;;;;;;:,,,,,,,:'';:::::;;;;;;;;;;;;;;::::::::::::::;;;::::::::;;;:::,,,,..........,,,,::::;#++''';;:;;;;:,::,,,....````````....,::;'+'+##+'#+';;'':;';;;;;:::::,,,:::;;;;:;;:;;'';:,,,,,,,,,,,,,,,,.,,...........,...................................................................................................,........
''''''''''''''''''''''''''''''''''''''''''''''';'''''''''''''''''''''''''''''''';;;'''''';;''''';;';;;;';;'''''''''''''''''+'''+++'++''++''''++;;;;;'''';::::::,::;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;::::;;:::,,,,..........,,,,::::;#+++';;;;;:;;:,::,:,...```` ````..,,,;;;''++###+##+'+;;;;';;;;:;:::::,:::;';;;;;':''''',``````````````.``..`````.......................................................................................................,...........
''+++'''''''''''''''''''''''+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''';;;;;;'''''''''''''''''';;;'''';;''';''''''''''''';;''''''';;;;;;:::::;;++'';;;;;;;;;;;;;;;;;::::::::::;;;::;;;::;;:;;;::,,,,..........,,,,::::;''++';;;;:::::,:,,,,..`````````..,,,,;''''+@####+++';;';;';;;::;::::::::;;;;';;'''+'+';```````````````````````````````.................................................................................................,...........
+++++'''''''''''''''''''''''+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''''''''''++'''++'+'++++'''+';;;''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:;;;;;;;::,,,,..........,,,,:::::#+++''';;:;::::,,,,,..``` `````...,:::;'++'##+#@+++''';;+';';;;;;;;:::;;;;;;'''''+++#+;`````````....``.......`.....................................................................................................................
+++++''++''''''++''''''''''''''''''''''''''''''''++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++++++++++#+####++++++''''''''''''''''''''''''++';;;;;;;;;;;;;;;;;;;;:::,,,,.........,,,,,::::++++'';::;::::,,,.,,.`````````..,,::;'''+#++#@##++++++''++''';;;;;;;;;;;;''''''+++###+,............................................................................................................................................
++'+++++++++++++++++++++++++'''++''''+'+++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''';;'''';';;'''';'+++'++++++++++###+##++++++++++++++++++#++++++++##+''+++'''+++++++#+';;:::,,,,...,.....,,,,,::::++++#';;;;:::::,,,,,.....`.....,,,::;''##@###@@@@###+#+###+''''';';;;;''';''++++++###;.............................................................................................................................................
+'''++++++++++++++++++++++++''++'''++++++++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;'+++'+++++++++++++++++++++++++++++++##++##++##++##++++++++++++++''++;;;:::,,,,...,,....,,,,,::::+####''';;;;:;::,,,,,,......`.,,::;'+''+##@@@@@@####+###@#+''''';;;;;;''''+''+++++##+,`............................................................................................................................................
+''+++++'''++++''''++'''''''''++''++''+++++'''''+++++''''''''''''''''''''++'''''''''''''''''''''''''''''''''''''''''''''';;'''''''''++++++++++++++++++++#++++##+'''++++++++#++++++++++++++#######+++#++++++';:,,,,:;;:::,,,,...,,....,,,,,::::+#@@#+''';;;;:::::,,,:,......,::,;'+######@@##@@@##@###@@@#++++''+';''''''++++######:..............................................................................................................................................
++++++++''''++'++''++'''+'''++++++'''+++++'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'++++++'''++++''++++++++++++++#####+++####';++++'''';;;;;;:,,:::::::::::::::,,:,,:::::::::::::::::::,,,,.`.``,;;:::,,,,,,,,,....,,,,,::::#@##+#+#+;;;;::;;:,::::,,,.,,,,;'+#+#@@@@@##@@@@@++#@##@#@####+'++''''+++'+##++##@#;...............................................................................................................................................
+++++++'++++++++++++++++++''++++++''++'+++'++##############################################################################################+###;;'';;;;::,,,,,,.``.........```.```````````````````````````````````,;;:::,,,,,,,,,.,,,,,,,,:::;+########'';;;;;::::::::,,::;;';++##@@@@@@@@@@###@@@@@@@@@@@@####+++'''+#+'###+++#;................................................................................................................................................
+++++++++++++++++++++++++++++++++++++++++++++#################################################################################++++++++++'''''+':::::,,,,.......```````````````````````````````````````````````.`...;;:::,,,,,,,,,,,,,,,,,,:::;'#@####+#+';';;;::::;;::,;;';'+'+#@@##@@@@@@@@@@##@@@@@@@@@@@###@###+++++#++#####'.................................................................................................................................................
++++++++++++''+++++++++++++++++++++++#+####+++++++++++++++++++++##+++##+++###+++++++++++++++++++++++'''''''''''''''''';;;;;;;;;::;;;:::;:::::::,,,,,..............................`````````...``````...`````.......;;:::,,,,,,,,,,,,,,,,,,:::;:'#@@@@@@##++++;';;;;;;;;''';'+@##@@@@@@@@@###########@@@@@@@@#@#@######+@##@###+..................................................................................................................................................
++++++++++++++++++++++++++##################';'++'++''''''''';;'';;;;;;;;;;;;::::::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,..,,.........................................................................................:;:::,,,,,,,,,,,,,,,,,,:::;;;'#@@#@##@###+++''+''+;;''+#+#@@@@@@@@@##++++###++++###@@@@@@@@@@##@@@@##@#@@#+:..................................................................................................................................................
##########################################@#';''';;;;::::::;::::::::,,,,,,,,,....,........```````````````````````````````````````````````..``......................................................................:;:::,,,,,,,,,,,,,,,,,,,::;;;;'#@@@@######+'++';+'''+##@#@@@@@@@@#+++++++++++++++++##@@@@##@@@@@@@@@#@###++,..................................................................................................................................................
##################+##++++++++++++++++'''''''::::::::,,,,,,,,,,,,,,....................````````````````````````````````````````````````````````.....................................................................,;:::,,,,,,,,,,,,,,,,,,,::;;;;''+#@@@#@@@@#@#####+##+####@##@@#++''''''''''+++++++++++#@@@@#@@@##@@##@##++'...................................................................................................................................................
'''''''''';;;;;;;;;;;;;;;;;;;;;;;;::::::,,::,,,,,,,,,,....,,...........................`......``...`.``............................................................................................................,;;::,,,,,,,,,,,,,,,,,,,:::;;;;''++#@@@##@@@#@@@#@@###@##@@@#+'''''''';;;;''''''++++++++##@@@@@@@@@@##++++:..................................................................................................................................................,
,,,,,,,,,,,.........,..............................................................................................................................................................................................,;;::,,,,,,,,,,,,,,,,,,,:::;:;;;''''+##@@@@@@@@@@@@@@@@@@#+'''''';;;;;;:;;;;;;;''''+++++++####@@@@#@#++++',................................................................................................................................................,,,
```````````````````````````````````````````.........................................................................................................................................................................;;::,,,,,,,,,,,,,,,,,,,:::;::;;;''''''+##@@@@@@@@@####+''''';;;;:::::::::::::;;;;'''+++++++#####@##++++'',...................................................................................................................................................
````````````````````````````````````````````........................................................................................................................................................................:;::::,,,,,,,,,,,,,,,,,::::::;;;;;';''''''''++++++''''';;;;;;;:::::,,,,,,,,,,:::;;;'''++++#########++''';....................................................................................................................................................
.........`..`.......................................................................................................................................................................................................:;;::::,,,,,,,,,,,,,,,,:::::::;;;;;;;;;;''';;;';;''';;;;;;::::::,,,,,,,,,,,,,,,:::;;;''+++########+++'';:....................................................................................................................................................
.......................................,............................................................................................................................................................................,;;:::::,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;;;;;;;;;;;::::::,,,,,,,,......,,,,,,:::;;''++++###@#+++'';;:....................................................................................................................................................
....................................................................................................................................................................................................................,;;:::::,,,,,,,,,,,,,,,,::::::::::::::::;;;;;;;;;;;;;::::::,,,,,,,,..........,,,,,:::;;''+++#####++'';;:,....................................................................................................................................................
....................................................................................................................................................................................................................,;;;::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::,,,,,,,,,.............,,,,,::;;''+++#+##++'';;;:,....................................................................................................................................................
.....................................................................................................................................................................................................................;;;:::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::,,,,,,,,,...............,,,,:::;''+++++##++'';;::,....................................................................................................................................................
.....................................................................................................................................................................................................................:;;:::::,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::,,,,,,,,,................,,,,::;;''++++##++'';;:::,....................................................................................................................................................
.....................................................................................................................................................................................................................:;;:::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,,,,,,,,..................,,,::;;''++++##++'';;:::,....................................................................................................................................................
.....................................................................................................................................................................................................................,;;::::::,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,,,,,,,,...................,,::;;'++++##+''';;;:::,....................................................................................................................................................
.....................................................................................................................................................................................................................,;;::::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::,:,,,,,,,,,....................,,::;''++++##+''';;::::.....................................................................................................................................................
................................................................................................................,,,,.,......,.........................................................................................;;::::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::,,,,,,,,,...................,,,::;''++###++''';;:::,,....................................................................................................................................................
.............................................................................................................................................................................................................,........:;;:::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::,,,,,,,,,...................,,,::;''+++##++''';;::,,.....................................................................................................................................................
.......................................................................................................................................................................................................,:;''++;;;;::,,:;;;::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::::,,,,,,,,,,...................,,,::;'++++##++'';;:::,,.....................................................................................................................................................
......,..,,,,,,,,,,,......,,,,,,,,,,,,..........................................................................................................................................................,,::;+###@@@##';;;;;;;:;;;;::::,,,,,,,,,,,,,,,,,:::::::::::::::::::::::,,,,,,,,,,...................,,,:;''+++##++'';;;::,,,.....................................................................................................................................................
..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......................................................................................................................................................,;'++#@@@@##@@###';;;;;;;;;;;;::::,,,,,,,,,,,,,,,,,:::::::::::::::::::::::,,,,,,,,,,...................,,::;''+++##++'';;:::,,,.....................................................................................................................................................
..,,.................,,,..................................................................................................................................................................,::'+##+#@@@####@###;;;;;;;;;;;;;::::,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,...................,,::;'+++##++'';;;:::,,,,....................................................................................................................................................
........................................................................................................................................................................................,::'#++##'#@@#####@###;;:;:;;;::;;;:::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,.................,,,:;''+++##+''';;:::,,,,,....................................................................................................................................................
.....................................,...............................................................................................................................................,:;;:;'#++#@#@@#@@#######;:::::::::;;;;::::,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,................,,,::;''+++#++'';;;:::,,,,,....................................................................................................................................................
..................................,................................................................................................................................................,:;;;;;';;'+#@#@@@@@@#####+;::::::::::;;;:::,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,..............,,,,::''+++##+'';;;:::,,,,,,....................................................................................................................................................
.................................................................................................................................................................................,::;';,:::::;'+###@@#@#######;:::::::::::;;:::,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,............,,,,::;''++##+''';;::::,,,,,,....................................................................................................................................................
.....................................................................................................................................................................,:;;;:,,...;+;;';:,,,,,::;'###@#@@#######':::::::::::;;::::,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,,.........,,,,,::;;'+++##+'';;;:::,,,,,,,....................................................................................................................................................
....................................................................................................................................................................,'''''##+';'++'';:::,..,,:;''+#@@@#@######':::,,,::::::;::::,,,,,,,,,,,,...,,,,,,:::::::::::::::::::::,,,,,,,,,,,,,,.....,,,,,::;;''++##+''';;::::,,,,,,,....................................................................................................................................................
...................................................................................................................................................................,:;';;;'+####++';:::,,....,:;;;+@@@#@#+####+:::,,,,:::::::::,,,,,,,,,,,,.....,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,::;;'''++#++''';;:::,,,,,,,,....................................................................................................................................................
...................................................................................................................................................................::::;::::'##+'';::::,.......:';'@@@@##+####+:::,,,,,,::::::::,,,,,,,,,,,......,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,::;;;''++##+''';;;:::,,,,,,,,....................................................................................................................................................
..................................................................................................................................................................,;:,,,:,.,:'##+''';,,:,,...,.,;;+@@@@########::,,,,,,,,,,:::::,,,,,,,,..........,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,::;;;'''++#''''';;:::,,,,,,,,,....................................................................................................................................................
..................................................................................................................................................................:';;;:,.,::;##+'+':,,:,,..`.,:;;+@#@@@@#++###::,,,,,,,,,,,::::,,,,,,,............,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,:::;;;''''+#+'''';;;:::,,,,,,,.,,...................................................................................................................................................
..................................................................................................................................................................''+';;,..:;'+@@#;,;;:,,,..`..,;:;@@@@@##+####;,,,,,,,,,,,,,:::,,,,,,..............,,,,,::::::::::::::::::::::::,,,,,,,,,,::::;;'''''+#+''''';;:::,,,,,,,.,,....................................................................................................................................................
..................................................................................................................................................................+++';:..,,:;'+##':;':,,,..,,:,;;'@@@@@##++###',:,,,,,,,,,,,,:::,,,,................,,,,::::::::::::::::::::::::::::,,,:::::;;;'''''+#+''''';;;:::,,,,,,,.,,,...................................................................................................................................................
.................................................................................................................................................................,@@#';:,..,:;;+##+;;;:,,,,.,:::;'+@#@@##@++###',:,,,,,,,,,,,,,::,,,,.................,,,,:::::::::::::::::::::::::::::::::;;;;''''''#+'''''';;;::,,,,,..,.,,,...................................................................................................................................................
.................................................................................................................................................................;@@@#;;:. ,;''+##+'';::,.,....,:;'@@@@###++###+::,,,,,,,,,,,,,,:,,,,..................,,,,::::::::::::::::::::::::::::::;;;;'''''''#+''''''';;:::,,,,,...,,,,...................................................................................................................................................
..............................................................................................................................................................,:;###@#;;,.`,:;;+@#';';;:,.,..`..,::#@@#@###+###+:,,,,,,,,,,,,,,,,,,,,,.................,,,,,:::::::::::::::::::::::::;;;;;;''''''''#+''''''';;;:::,,,,,..,,,,,...................................................................................................................................................
............................................................................................................................................................,:;'++;'+++;...,..:'##+'''';:,,......:;+@@@@###++###;,,,,,..,,.,,,,.,,,,,,..................,,,,::::::::::::::::::;;;;;;;;;;;'''''''''++'''''''';;;::,,,,,,..,,,,,...................................................................................................................................................
...........................................................................................................................................................,:;;;':,,:;+;.`..,,:'####'''',::..,.,:;;+@@@@###+++##':,,,,...........,,,,,...................,,,,::::::::::::::;;;;;;;;;;;;;'''''++'++'''''''';;;;:::,,,,,..,,,,,,...................................................................................................................................................
...........................................................................................................................................................:;;;;;.,..;'',.`.::;;+#@#'''',::,,..,::;+@@@@@###++##+::,,,,...........,,,,,..................,,,,,:::::;;;:::::;;;;;;;;;;;''''''++'++;;''''';;;;;;:::,,,,...,,,,,,...................................................................................................................................................
..........................................................................................................................................................,'+:,+;,;,.;+':....:;:+@@#+#+';:::.`..,:;'@@######'####::,,,,.............,,,...................,,,,,::::;;;;:::;;;;;;;;'''''''''++'+#;,;;'''';;;;;:::,,,,,...,,,,,:...................................................................................................................................................
..........................................................................................................................................................,+#+::;;:...,;,...`,::++##+'+'::,,,,,::'+#@#@#####+####;::,,,..............,,,..................,,,,,:::::;;;;:::;;;;;''''''''''+''++;,:;;''';;;;;;:::,,,,,....,,,::...................................................................................................................................................
.........................................................................................................................................................,;#@@+.;;,```,;,`....,;;;#@#'++';::::,:;;'+@@@#@########'::,,,...............,,...................,,,,,:::::;;;;;;:;;;'''''''''''''+':,,::''';;;;;;:::,,,,,....,,,,::...................................................................................................................................................
.......................................................................................................................................................,:''+@@#;::;..`,;,...,.,:;;#@#+++'';::,.::;;'#@@######'####:,,,,,...............,,..................,,,,,:::::;;;;;;;;;''++++'''''''+':,:::;;;;;;;;;;:::,,,,,....,,,,::...................................................................................................................................................
.....................................................................................................................................................,,,,,:'#+@+:;':..,::,..,,,,;'+#@+';'';:,,,,:''+#@@@@####+####;,,,,,................,,..................,,,,,:::::;;;;;''+++++++''''''+':,::,:;;;;;;;;;:::,,,,,,....,,,,::...................................................................................................................................................
....................................................................................................................................................,:;:,,,;'+@+;';:.,:::,....,,:;'#@+';;;::,,.,:;'+#@@@####@++###'::,,,................,,,.................,,,,,,:::::;;;;'+++++++++''''+':,:,,,:;;;;;;;;;:::,,,,,,....,,,,::...................................................................................................................................................
....................................................................................................................................................:;;:,,,::'@#+;:,,,.:,.....,:;;'#@#++;::;;:,:;;'++@@@@##+######+::,,,,................,,,.................,,,,,:::::;;;;;'#+++++++'''#',,:,:,,:;;;;;;;;::::,,,,,.....,,,,::...................................................................................................................................................
.................................................................................................................................................,..:;::,,.:::+@+;,:;::;:,,...,:;;;+#@#++;;':,,:;;+++@@@@#####+####;::,,,.................,,,.................,,,,,::::;;;;;;'+++++++++#':,,,:,:,:;;;;;;;;:::,,,,,,.....,,,,:,...................................................................................................................................................
....................................................................................................................................................:';,:,.,:::##';;;;';;,,,...,:::;'#@#+';;:,,,,:+++#@@@#####+####+::,,,,.................,,,,,,.............,,,,,::::::;;;;;+++######+:,:,,:,,,:;;;;;;;;:::,,,,,,.....,,,:::...................................................................................................................................................
...................................................................................................................................................,'##'',`,,:;#@+';;;:::,,,...,,,:;;+@#+';:;:::::':'#@@@@####++####:::,,,.................,,,,,,,,............,,,,,:::::;;;;;+++##+####',,,:,,,,:;;;;;;;::::,,,,,,.....,,,:::...................................................................................................................................................
....................................................................................................................................................+@@@#:,,.,;#@+;;'':::,..,.,,,::''+@@#+';;;::;;;:'+@@#@#####+####'::,,,,.................,,,,,,,,,..........,,,,,:::::;;;:'##+##+#####;,::,,,::;;;;;:::::,,,,,,,.....,,,:::...................................................................................................................................................
.............................................................................................,......................................................'@#@'::,..:+#+';;';;::,.,.,.,,,;'+#@#+'';:,:::;''+@@@@#####+####+:::,,,,................,,,,,,,,,,,........,,,,,::::::;;;+##+#########:,::,,:;;;;;;:::::,,,,,,......,,,:::...................................................................................................................................................
....................................................................................................................................................;@@':::,,.,+@#';''':::,....,:,.,;''##+;;;;::,.;''+#@@@@####+#####;::,,,,,...............,,,:,,,,,,,,,.......,,,,,:::::::'##+#++######@+,::,,:;;;;;::::::,,,,,,,.....,,,:::...................................................................................................................................................
.................................................................................................................................................,..:@+::;::,,,;#+::'';:,,.,....::,,:;+#@#+;:'':;;;''+#@@@@####++#+##+:::,,,,.............,.,,,:::,,,,,,,,,,....,,,,,::::::;+#++++++#######',::,:;;;;;:::::,,,,,,,,.....,,,:::...................................................................................................................................................
.........................................................................................................................................,...,,...,.,'::;:::.,.:##;;+';;,,:,,,..,:::;'#@@@@+:;';'';';+#@@@@@##@++#####;::,,,,,,...........,,,,,,:::::,,,,,,,,,..,,,,,::::::'#++++++++#######:,,,:;;;;;:::::,,,,,,,,.....,,,::,...................................................................................................................................................
.........,...........................,..................................................................................................,,,.,,......,:;;:;::,.,;#@#+'';':::,,..,,:,:;;+####+;';:;;:;''+#@@@@####+#####+:::,,,,,,.........,,,,,,,::::::,,,,,,,,,.,,,,,:::::;##+##++++++######+,,,:;;;;;:::::,,,,,,,,....,,,,::,...................................................................................................................................................
.........,,........................,,..............................................................................................................,:;;:::;:...:+@+''+::':,.....,,,:;:;'++##;::::,;;'''#@@@@#####+##+##;:::,,,,,,......,,,,,,,,,::::::::,,,,,,,,,,,,,::::;+#+++++++++++######;,,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
.........,,.......................................................................................................................................,:;;;;;;;;,..,'+':'+';;:,,,..,,,,:';'+++###;:,;:;;;:+#@#@@@####+#####+::,,,,,,,,,...,,.,,,:,,,,:::::::::,,,,,,,,,,,::::'####+++++++++###@###:,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
..,.............................,.........................................................................................................,,.....,:;;;;;::;;:.`,'+''#+#';,;:,,,,,;;;;;+#++++#+':;:;:;;#@@@@@@###########;:::,,,,,,,,,,,,,,,;:,,,,::::::::::,,,,,,,,,,:::;+####++++++++####@##@+,:;';;;::::,,,,,,,,....,,,,,::,...................................................................................................................................................
..........................................................................................................................................,,,....:;;:;;:::;';,.:'#+##+++;,;:,,:,,;;:::'+##+''#+:,,;:;'+@#@@@@@@@#++##'##+::::,,,,,,,,,,,,:;:,,::::::;:::::::::,,,,,,::::'###+++++++++++########:,'';;;::::,,,,,,,,....,,,,:::,...................................................................................................................................................
........................................................................................,,,.,,..................................................,:;::;;:;;;';,:;'+';++'';,::,.,,,,,:;:;''++''+'';,:,,;#@#@@@@@#@#++##+#+#+::::,,,,,,,,,,,::,,::::::::;;;:::::::,:,:::::'+#+#++++++++##+########',''';;::::,,,,,,,,,.,,,,,,:::,...................................................................................................................................................
........................................................................................,,,,,,.....................................,,..........,:;:;;:;:;::;:..:'++;'';;;:,.,......,::;'+'+#''+#+;:;::+###@@@@@#######++@+;:::,,,,,,,,,,::,,:::::::::;;;;;::::::::::::;+#+++++++++++++######@###:''';;::::,,,,,,,,,,,,,,,,:::....................................................................................................................................................
........................................................................................,......................................,..............,:;::;;:;::::;,,.,'++'+'+';;;,,,,..,,:::'+#+##''++#+;'';+##@@@@#@###+########::::,,,,,,,,:;;::::::;;;:;;;;;;;;:::::::::;'++++##++++++++##########@+''';;::::,,,,,,,,,,,,,,,,:::.................................,,.................................................................................................................
...................................................................,,.........,......,,,.......................................,,.............:;::::::;:::::,:,.+#++++#':+;:,,:,.,,:;;''+##++;;'+#'';+'#@@@@@@#@#++##+#####+::::,,,,,,,,;;:::;;;;;;;;;;;;;;;;;::::::;'+'+###+##++++++##++#+#####@+'';;::::,,,,,,,,,,,,,,,::::.................................,,,........,...................................................................,...................................
...................................................................,.................,,......................................,............,..::::::::::::::;;::`'@++'++;;':,,,.,,,,,::;'+'##+':;''+';''+@@@@@#@@#####+######'::::,,,,:::::::;;;;;;;;;;;;;;;;;;;;;;:;'+'+#######+++++++++++++##@#@#'';;::::,,,,,,,,,,,,,,,::::,........................................,...................................,,.....................................................................
............................................................................................................................................,::::::::::;:::;;,,.;+;;;'+;;;:,,.`,,..,:,;'';+##';:;;++';+####@@@@@############+;::::,::::::::;;;;;;'';;;;;;;;;;;;;;;;''++++#####+++++++'+++#++######+';;:::::,,,,,,,,,,,,,,::::,...................................................................................................................................................
...........................................................................,,.............,,.......................,,......................,::::::::::::::::;,`,;+';:'#';::::.,,,,,,::;+'++#@++;;;'+#;'+##@@@@@##############+::::::::::::;;;;;;'''';;;;;;;;;;;;;;''++++###++++##+++#+'++#+########';;;::::,,,,,,,,,,,,,,::::,...................................................................................................................................................
...........................................................................,,......................................,,......................,::::::::::::::::;:,,:##';+++;:;;:,,,.,,::;'+++++##+'';:;'''+#@@@@@@##@#######@####':::::::::;;;;;;;'''''';;;;;;;;;;;;'''++++###++++++++##+++++'++######+';;::::,,,,,,,,,,,,,,::::..........................................................................,,........................................................................
..........................................................................,...............................................................,::::::::::::::::;;::.:##''+++';;:,,,.,,.,;:''+';+;#+'';:,:+++#@@#@@@@@@##@@@########+;:;::::;;;;;;;';''''''';;'';;;;;;'''++#+##+++#+++'+++'++++'+++######+;;;::::,,,,,,,,,,,,:::::........................................,..................................,...................................,,...................................
..........................................................................,..............................................................,::::::::::::::::::::..;##';+'+';,,,...,,,,:::;;''+'#++''';'#####@@@@@@@@@@@@###@@@@###+;:;::;;;;;;;;;;''''''';;'''';;;;'+++##+++###+++++++''''+++++++######';;::::,,,,,,,,,,,,:::::........................................,.,,..................................................................,,,...................................
........................................................................................................................................,,::::::::::::::::::,:,.;##;;#'++;,::,...,::::;''+++#@##+++'++@#@@#@@@@@@@####@##@#@#####':;;;;;;;;;;;;;;;''''''''+++'''''+#++++++###++++##+'''';'++++++++###+;;::::,,,,,,,,,,,,:::::...............................,,,.........,.................................................................,,,,,..................................
........................................................................................................................................,::::::::::::::::::::::,:##''#++''::,,,.,,:,:;;;+++#+#++'++'''+#@###@@@@#@###@@@@@#@@#####+;:;;;:::::::;;;;;;''''+++++++++++++++++++++++++++''+'''+++'''+++###';;::::,,,,,,,,,,::::::.,,...........................,,...,,.......................................................................,,,..,.........,........................
.......................................................................,,..,,..........................................................,::::::::::::::::::::;::.:#+'''+'':::,.,,,,,,:::;++'++#+#+'+'''+@@###@@@@#@@@#@##@@#@@######+;;::::.,...::,:,,;:;'++++'++++++++####+++##++''''+#''+;'''''+++####';:::::,,,,,,,,,::::::.,.....................,,,,,,,,..............,....................................,,...............,,..............................................,
.......................................................................,,...,.....................,..........,........................,,::,,:,,:::::::::::::::..:##'++#+':::,.,,,.,::.:'+++'+#@@#+'+###@##@##@@@@@##@@#@@@@@@@######';,,:....`..,..`,;,:+++#+++###+++####+++++++'''''++''';;;'''+++####+;;::::,,,,,,,,:::::::..,,...............,,,,,::::,,.,,,......,...........................................................................................................
......................................................................................................................................,,:,,,,,,,,,,::::::::::...:##'+###+':,:::,.,,::,;'++#+++#@#++###@@#####@@#@@@@@@@@@####+++'';;;,,,,..```.``..`.,,,;'###+##########++++++++''+;'''';';;:;;''+++####';;::::,,,,,,,::::::,..,,,.............,:;;;;;;:,;;::,:,,.......................................,....................,...................................................
.....................................................................................................,...............................,,,,,,,,,,,,,,,:::::::::.,,;#@++##+'':,:,,,,,,,:::'+##+##+#@####@@@@###@@###@@@####++''';;::':::;::,,,.`..```````.`,:'######@@#####++++++++'++;'';;;;;;;;;'''++#####';:::::,,,,,:::::;;,...,,...,........,''+;,::,,,;;;;;:::,..........,,.........................,,....................,.......................,...........................
.....................................................................................................,...............................,,,,,,,,,,,,,,,,::,::::;:::;#@+####+;::,``,,.,,,::'++++#++#@####@@@@#####+#@###+++'''''';;;;;;;::;;:::,,..```````...,,;#####@@@#####+++''+++'';;;;'';;;;;;;;'''+####+;;::::::,,:::::;;:,.....,,,,.......,'###+:,,.`.;;;';::::,,.............................................................................................................
................................................................,...................................................................,,,,,,,,,,,,,,,,,,:::::::;,:'+#'+#+#';;:,..,,,,,,;;'+'+#####@@##@#@@####++++#+++'''+'''+'+''';'';;;;';;:::....``.`.,...,;##@@##@@####+++++'++';;;:;;;;;;;;;;''''++####';;::::::::::::;;:..,....,,,,......:+++++',.,..;;;;,,:::::,............................................................................................................
..............,,,,.................................................................................................................,,,,,,,,,,,,,,,,,,,,::::::;,:''+'++#+::;;:,:,,::,::;+++++#@###@@@@##@####+##''';;;;+++++++#+++++''+''+'';;;;;::,.......`,;;+#@@##@@@###++++'+';;;;;;::;;;;;;;;;''+++####';;::::::::::;;;:..,.......,.,,,..,;'++'+;.,..;;;,,,:::;;:,.......................................................................,...................................
..............,.........................................................................,..........................................,,,,,,,,,,,,,,,,,,,:,:::::';:'##++##+':;;,,,,.,:,:::''+++'++#+#@@@#+#@#'+###;';::;'+++##+''++++#+#++++++''''+''':,.,,,,``,,;'#@@@###@####+'''';';;;;::::;;;;;;;;''++####+;;;::::::::;;;;:............,..,..:++++';.,,.:;:.,,::;++':,,.............................,,..........................................................................
..................,.....................................................................,.........................................,,,,,,,,,,,,,,,,,,,,,:::::;;;.;##++##'+;,:,,,:,.,,,,,:;+##+'##+#@@@@####+++''';::;;'##+';:::::::;;;;;;''+++++++++;';';,...,::''#@@#@#@@@###''';;';;;;;;;;;;;;;;;;'''++####+;;;:::::;:;;;;,..............,,...;'++';.,,.:;..,::;+++#+;,..........,................,,.................,,.........................................................
...,,...................,.........................................................................................................,,,,,,,,,,,,,,,,,,,,,:::::::,,;'';'#+##;::,,,.,,:,,:;'++##+####@#@@#####+++'';::;;;''';:::::::::;;;:;:::;;;;++#####++';::;':,;;++@@@@#@####++''';;;;;;;;;;;;:;;;;;;'+++###+';;;::::;;;;;;,.,,,..,,,..........:+'+';.,,.;:.,:::+++##+';,........................................................................................................
...,,,...................,,......................................................,,..............................................,,,,,,,,,,,,,,,,,,,,,,:::::::,;;;;'##+#+';:,,,..::,::'+#+###@#@@###@@#@##++##+;;:';;;:::::::::::::;;;;;;;;;;;;;;'##@#++'+':;:,,.:;'#@@@#@##@##+''';'';;;;;;;;;;:::;'''++####+';;;;;;;;;;;:,,.,,,,,,,,........,.''++'.,,.;..:,:+++##+++':,,....................,,...............................................................................,
,.....,,,,................,.....................................,................,,,.............................................,,,,,,,,,,,,,,,,,,,,,,:::::;;'';+##@#++'+;:,,,,.,,,::;'++++#@@@@######@##+'+#';;:;::::::::::::::::;;;;;;;;;;;;;;;;;+###++;,:::,.:;:'+@@@@@@#@##+'''''';:;;;;;;:;::;''''+#####+';;;;;;;;;;,,,,,,,,.,,,........,.:''+'..,,:.,:,'++##+++''';,,,...................................................................................................,
,,.........,,................,..................................,.................,,,,....,.....................................,,,,,,,,,,,,,,,,,,,,,,,,::::''++'##+++'+'',,,,.,,..,::;'''++#@@#@@@##;'+;'':;;::;::::::::::::::::::;;;;;;;;;;;;;;;;;;;'###+'+'::::.,,.+@@##@@###+++''';;:;;:;;;:;;::;'''++#####'';;;;;;;;;,,,,,.,,....,,,,..,,..,''+',.,.,,,,;+###++:;+#+;;:,,........................................................,,,,....,,,................................
,,,........,,......................................................................,,......,........................,...........,,,,,,,,,,,,,,,,,,,,,,,,::::;:';'#+;'+++'';;;:::,:::::'++++++#@#@#@@#;++;;:,;;::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;'#@###''':,,,,,'#@#@#@@###++'';;';;;;;;;;;;::;;''+#####+'';;;;;;';,,,,,,,,,,,,,,,,,,,,...'+++,....,,:+###++:.;+##+;::,...,,,.....................................................,....,..................................
.,...,.......................................................,.................,,...........,....................,,,,,.........,,,,,,,,,,,....,,,,,,,,,:::::;;;:;'''++#+'++';:;,,;::;:''+#####@@######+++';;;::::::::::::::::::::::::::;;;;;;;;;;;;;;';;;;'#@@#+;:,::,.`,#@@@@@####++'''';;;;;;;;;;::;;;'++#####+''';'''':,,,,:,,,,,,,,,,,,,,....;+++:.,:,,,;###++,..'+#++;::,,..,,,,,,.,,,..................................,...........,.......................................
.....,,...............,......................................,.................,,......,...............,....,,..,,,,,,.........,,,,,,.........,,,,,,,,,:::::'+';;+++##++'';;:,,.,;,:;:;;''++##@#@#@###++#;;;::::::::::::::::::::::::::::;;;;;;;;;;;''';'';;;'##+';:;,.```:'@@@@@@###++'''';;';:;;;;;;:;;''+####@#+''';;::,,,,,,.,,,,.,,,,,,,,.,,.:';+::,,,::+###+,...'##++'::,,,.,,.,,........................................,..........,....,...................,,.............
....................,,,....,.............................,,.................,,,...............,........,.....,,.,...,..,..,...,,,,,,,..........,,,,,,,,:::::'#+''+#''+'++',,:,,.,,:,:::';;++####@@##+;''':,::::::::::::::::::::::::::::::;;;;;;;;;;;''''''';;;###+';::.`...'@@@@@@###+++''';';;;;;;;;;;;;+++###@#++';:,,,,,:,,,,,,,,,,,,,,,,,,.,.:+:'+:,.::'####,...,+#+++:,,,,,,.,..,...........................................................................................
,....,.....,,.........................................................................,......................,...,....,......,,,,,,,...........,,,,,,,,:::::+#''''+;;+''';:,.,;:,,:,:;'++###@########'';;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;''''';;';+##+'+':,,``:+@@@@@#####++'''';;;;;;;;;';;'++######++;:::::::::,,,,,,,,,,,,,,,,,,.:+;;;,,:;;####:..,.,###+',,...,;,..,............................................................................................
.............................,,..............,.....,,.................................,.....................,.........,.....,,,,,..............,,,,,,,,:::::+#:;''+++#+'+:;:,::::,;:;;;+##++#@@##@''++'';:::::::::::::::::::::::::::::::::::;;;;;;;;;;;''''''';;+###'';:;,:'#@@#@@@@####+++''';;;;;;;;;:;;'++####+++';::::::::,,,,,,,,,,,,,,,,,..,+';;:::+#++#;.....;##++;,,.`.:;:...............................................................................................
.....................,........,,............................................,,..............................................,,,,................,,,,,,,:::::##';+++####++;;;::::::;;;:''''+'#@#@@#''+::;;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;'''''''';;'##+'':;::;#@@###@@#####++';'';;;;;;;;;;;;'++++#++'';;:::::,,,,,,,,,,,,,,,,,,.,.,+'';;;;'''+'......'##++:,,.`:;:::..............................................................................................
........................,.......,,..........................................,,...........................,.................,,,,,...............,,,,,,,:::::;@#+'##+#++#+'':,:,,:,:;;;;';''+###'###+'':::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;''''''''';+@#++';;,;+@@@###@#@####+''++''';;;:;;;;;'''+++''';;;;:;;::,,,,,,,,,,,,,,,,,,,.,'';';''''++,...,.,+###:,,.`,:::;;,.............................................................................................
.......,...,............,,......,,.........................................................,...........,,,...,.............,,.,................,,,,,,,,::::;#+''+++++++'+',::,,,,,:;;';;+#########+;'';::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;''''''';+@###'';';+@@@###@@@####+++++'''';;;;;;;;''''''';'::;;;;;:,,,,,,,,,,,,,,,,,.,,.;#;''''++#,......'###+,.,`.;:;::,..............................................................................................
,,,,,,.,,,,,,...........................................................,..................,,.........,,,.................,,,..................,,,,,,,:::::;##;'+'++##'++',;::,,:::;:;''++####@@##':;:::::::::::::::::::,,,,::,:::::::::::::::::;;;;;;;;;;;;''''''';+@##+''':;#@@@#@@@@@@######++''''';;;;;;'''''''';:,:;;;;:,,,,,,,,,,,,,,,,,.,,.:#'''++##:..,,..:####:,.`.;;:,.`.,,,,..........................................................................................
,,,,,,..,,,,,.,,,,,...........,.........................................,..............,..............,...................,,,..................,,,,,,,:::::'@##+++####++;';:,,:::::;;''+#''+####++;::::::::::::::,,,,,,,,,,,,,,,::,::::::::::::::;;;;;;;;;;;'''''''';+@#+''''+##@##@@@@@@@########'''';;;;;;''''''''';:;;;;:,,,,,,,,,,,,,,,,,,,,,..;##'+##:.......+++#',...;:.`..,,,.,,.............................................,,.....,,,...................................
.........,,,..,,,,,,........,,,.........,....................,.....,,,.................................................,..,,.,.................,,,,,,::::;:;#@#+##+##+#+:::,,,::,:::;;''+'+++##';'';:::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;;;;;;;'''''''''#@#++++###@@@@@@@@@@@#@#####++++;;;;;;;++;;'+'';;;;;;:,,,,,,,,,,,,,,,,,,,..,.,'#+##:.,...,.:#+++::,.:.``,,,.,..,,,.,.........................,....,...........,,,,.,,,,,...................................
........,,,,,,,,,,,,.........,.....................................,,,...................................................,,....................,,,,,,::::;;;+#'++#++##+++:,:,.::::,,,;;'+##+###'''';:::::::::::::,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;;;;;;;'''''''''#@#+#++''+@@#@##@@#@#@######++''''''';'+''''';;:;;:;:,,,,,,,,,,,,,,,,,,.,,,..;+#+:.,.,.,..'#+#+;::.````..,....,:,...,,,.........................,...,::::,....,.,...,,....,,..............................
......,,.,,,,,,,,......,,.................,,....................,,.......................................................,,...................,,,,,,::::;;;'#+'++####@###'::,,:::::::;;'##+####'+':::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;;;;;;''''''''+@##+++;:;+#@@@#@@@@@@@@#####+++''''''';'++'';;::::::,,,,,,,,,,,,,,,,,,.,,,..;++;..,,....,#+'';:,:,.``````,::,,:,..,,,,.................:::;:;::::::;';;';::,,.,,,.,,,,,,,,,,.............................
....,,..,,,,,,,,,....,,,.......,,,,.....,...............................................................................,,....................,,,,,,::::;;;+@#+++##@###+''':::::::;:;;''++++#++'';::;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;'''''''+'#@@++''+';#@@###@#@@#@@@#####+++''''++''++'';;:::::,,,,,,,,,,,,,,,,,,,,,,,.,'++,,,.,.,..;#++';:,,:,.`.,;++#++';:...,,.,,...,..,,.......:;:;;''';''''''''''';;:,..,;;,.,,...,,..,,........................
,,...,....,,,,,,,,...,,.......,,..,,..................,,,..............................................................,,,...................,,,,,,,::::;;;+##++#@#####+;;;,:::,,;::':+'+##+++#';;;;;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;;'''''++++@@##'++''+##@@@#@#@@@##@#####++++''#++++'';;:::::,,,,,,,,,,,,,,,,,,,,,,,,.:++;,,,,,,,.,'+++'';;::,:'#########';....,,.,,,,,,,,,......,.,,,:;:,,:'';;;;'''''';;::,;;:,,.,,..,,.,,,.......................
,,,.......,,,,,,,,........,,..,...........,,,....................,,,,,.......,.....,..................,,,..............,,....................,,,,,,,:::;;;;###+###@####+':,:,,:::;:;;'++++#++++'''::;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;;;;'''''+++'#@@#++++++++##@@@@@@@@@########++''+''++'';::::::,,,,,,,,,,,,,,,,,,,,,,,.,;+',.,,,,,..,##++'''#''+###########+;...,......,,,,......,,:;,.::,,,,:';,,,,:;;;;;;;;;;;;;;,................................,,
,,,.....,,.,..,,.........,,,...............,,,...................,,,,,,,,,,,,,,,,,,,,...,,............,,,.....,........,....................,,,,,,,:::::;;;+#++#+#@#@@##+;,;:,::;;;';+'++''+#+'+';;;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;;;;;;''''+++++@###++++'''++###@@@@@@#@@@@@##++++'++++';;::::,,:,,,,,,,,,,,,,,,,,,,,,,.:'+;,.,,.,,.,;##+++''##########@####+;.,.,.............,,,,,;':,,....,:';,,,.,,:;;::::;;;;'';,............,,,,...............,,
,,,.,,,,,,......................,,..,,,,....,,,,...............,,,....,,,,,,,,,,,,,,,,.,,,............,,,,.........,,.,,....................,,,,,,,::::;;;'####@########;';;:,:::::;;;'++''++##+;;:;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;;;;;;;;;;''''+++++####+';'++++'@@#@#@@#@@@@@@@##+###++++'';;::::,,,,,,,,,,,,,,,,,,,,,,,,,,;++:.,,,,,,.,'##++'''''++####@@@@@#++;,,..,,,,........,,,,.,;;,.,....,'';,....,,:;;;;::::'+'';::,,,,,,,,,,,,,,...............,,
,,,,,,,,,,,.......,,.....,,,,,..,,,,,,,,,....,,,...............,,.....,,,,,,,,,,,,,,,,,,,,..,,......,,,,,.........,..,,,....................,,,,,,,:::;;;;'###+@@@@####+';::.,:,:::;::'++#@##@#+':;:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;;;;;'''++++++@@#+';'#+'++##@@#@@@@@@@@@@@##++##++'';;;::::,,,,,,,,,,,,,,,,,,,,,,,,.:'+',,,,,,,..:++++'+''++##@###+'';;;;':....,,,,.............,:;:....,.:'';,,...,.,,,,:;;;;+++'''';:,,,,,,,,,,,,,..,............,
,,,,,,,,,,,...,...,,.....,,........,,,,,...,,,,,...,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,..........,.,,,.,,....................,,,,,,,,:::;;;;'@#+####@@##+#+:,::,::::;';''#++@#+++';::::::::::::,,,,,,,,,,,,,,,,,,....,,,,,,,,,,,,,::::::::;;;;;;;;;;'''++++++#@#++''++'''+####@@@@@@@@@@####+#++''';;::::,,,,,,,,,,,,,,,,,,,,,,,,.,'++',..,,,.,,'+'+######+';:,,,...........,,,,.,,.,,...,:,,;':;';,..,.,;'';,,,,....,,,,:;'++++;:;'';:,,,,,,,...,,,............,..
..,,,,..,,,,,,,,..,,....,,....,,......,,..,,,.....,,,,,..,,.,,...,,,,,,,,,,,,,,.,,,,,,,,.,,,,,,....,...........,,,,..,,...................,,,,,,,,::::;;;;'@######@@@@+++;,::,:::;;;;''+#+#+;;+;;;::::::::::,,,,,,,,,,,,,,,,..........,,,,,,,,,,,::::::::;;;;;;;;;''''+++++#@@##+''+''+####@#@@@@@##@@####+++''';;;:::,,,,,,,,,,,,,,,,,,,,,,,,,,;++++';,.,,,:'+'++:::;:,,.........,,.......,,.,,,,,,,..,:'+++'++':,,..,;'';,,,,...,,,,:;'++'''';:;++;:,,,,.,,...,,,,.,..,,,,,,,..
,,,,,.,,,,,,,,,,,,......,,..,,,,,,.....,,,...............,..,,...,,,,,,,,,,,,,,,,.,,,,...,,,,,,,................,,,.,,,...................,,,,,,,,:::;;;;;+@#@##@@@@@@++'',,.,,,;;:::'''+++''+';;;::::::::::,,,,,,,,,,,,,,.............,,,,,,,,,,::::::::;;;;;;;;;''''++++++@@@#++++''#@@@@@#@@@@@@@@####++''';;;;;:::,,,,,,,,..,,,,,,,,,,,,,,.:+++++++;,.,:'';'++;,.....,,,,,,,...,......,,,,,,...,,,,..,'++++++'':,,,;';:,,,.,,.,,,;'++';::::;;''++'';:,,.,,..,,,..............
,,,,..,,,,,,,,,,,....,,,,....,.,,,......,....................,,,.,,,,.,,,,,,,,,,,,,,,,,......,,,,...............,,..,,,..................,,,,,,,,::::;;;;;+##@#@@@@@@##+;:.,,,:::::;;;'+#''###';;:::::::::::,,,,,,,,,,,,................,,,,,,,,,,::::::::;;;;;;;;''''++++#+#@@#+++';++##@#@@#@@@@@@##+#+'';;;;;;;::::,,,,,,,...,,,,,,,,,,,,,,:'#+;'++++'::+';:;+++,..,:'+++++'';:,.,....,,...,,....,,,,..,'+''++++';;;;';,,,,..,,,:;''';:,.,,,,,,:'+++'';:,,,,...,,,............
,,,,...,,,,,,,,,...,,,,,,....,......,,....,,....,.,,.,,,,.....,,,..,,.,,,,,,,,,,,,,,,,,,..,,,,,,,....,,,,.......,,.,,,,..................,,,,,,,::::;;;'''###@@@@@@@@#@+;;;:::,:::;;''++#++#++;;;:::::::::,,,,,,,,,,,,,..................,,,,,,,,,::::::::;;;;;;;;''''+++##+#@@#+''''+++###@@@@@@@#@##+++';;;;;;;:::::,,,,,,.....,,,,,,,,,,,,,'##',;++++++';:,,;+++;,;'+#+######+':....,...,,,,.........,,.,;'''+'++++'';:.,,,...,:;'';:,.,,,...,,,:'+++''':,,::,,,.,.,,.........
,,..,,,,,,,,,,,,..,,,,,,,,..,,,....,,,.,,,......,,,,,,,.......,,,..,,,,,,,,,,,,,,,,,,,,,...,,...........,,.........,,....................,,,,,,,::::;;;'''#@#@@#@@@@@@#+';;:,::;:;;;++++##++';;;;:::::::::,,,,,,,,,,,,...................,,,,,,,,,,::::::::;;;;;;;;'''++#####@@#+';+'+++#@#@@#@@@@###++++;;;;;:::::::,,,,,,,......,,,,::,,,,,;##+:.,'++++++;,,,:++++;;:'#++#+++++':,.,.,..,,,.,..,.....,,,.,,:;'+++'++++':..,,,,.,;;;';,........,,,;++''+++';;;'';:,,,,,,......,,
....,,,,,,,,,,,,,,,,,,.,,,,,,,,,..,,,.,,,,.......,.........,,,,,....,,,,,,,,,,,,.,,,,,,,,........,,......,,....,..,,,...................,,,,,,,,:::;;;'''+@@@@@#@@@@@@##';:,,,:;;::;'''###++';;::::::::::,,,,,,,,,,,,,....................,,,,,,,,,:::::::::;;;;;;;'''++#####@@@#+++''+@@@@#@@##@@###+++';;;;::::::::,,,,,,,......,,,,;;;;;;;+#+;,,,;++++++',.,:++++;::;+''++###+;.,.,,,,,,..,,,.,...,,.,,:'+;;';''++++++;,,,,,.,:;;;;;,.,.......,:'+;,:+++';;;''++;:.,,,,,....,,
,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,.,,,,....,.......,...,,,,,..,,...,,.,,,,,,,,,,,,,,,,,,..,,...,,..,.......,,..,,.,.................,,,,,,,,::::;;;'''+@@##@@@@@@@@#+;;,,:,,::,:::'+#####+;;;:::::::::,,,,,,,,,,,......................,,,,,,,,,:::::::::;;;;;;;'''+++####@@@#+##'+##@@###@#@@@###++'';'';:::::::,,,,,,,........,,,,:;'++++++';::'+++++++'::;++++':;+########+,,,,,,,,,,,,,,,,..,.,,,.,'+++++'''+++++++':.,,,:;;;;;:,,,,,,,,,.,;+;,,,;++';;;'''''::,,..,,,.,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,..,,,,,,,,,.......,,,,,,,..,,,.....,,,,,.,,,,,,,,.,,,,,,.,....,,,,,......,,.,,,.,.................,,,,,,,,::::;;;;''#@###@@@@@@@@#++:,,,:,,:'';;##+#@@#';;::::::::::,,,,,,,,,,,.......................,,,,,,,,:::::::::;;;;;;;'''+++#####@@@+##++#@@@@@@@@@#@####'''''';::::::,,,,,,,,........,,,,,,;'++++++++++''++++++'''++++'';+######+':.,.,....,,,,,,...,..,...,'++;;'+++''++++++':,.:;';;;';;;;;;;;:,.,;;,...,;+';;'''''';::,,,.,,,,,.
,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,..,..,,,,,,,,......,,,,,.,,..,,,,,......,..........,,,,,,,....,..,,,,......,,.,,,,..................,,,,,,,::::;;;'''+@@@@@@@@@@@@@##+;;:,:,,;;;';'++++'';;;:::::::::,,,,,,,,,,,........................,,,,,,,,,:::::::::;;;;;;'''++######@@@+++';'#####@#@@@@@###+''''';:::::,,,,,,,,,........,,,:::;'''++++++++';'++++++''+++++######+':,..,,:,,,,,:;;;,,,....,:;;'++++;;;'+++++++++++';;'';;;;;;;;;;;;::,.,:,.,,..,;';;'+''';;;;;:,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,,,,,,,,,..,,,,,,,..................,,,,,,,....,,.,,,,,,,,.,,,,,,................,,,,,,,,::::;;;'''+@@#@@@@@@@@@##+;::,..,,::;'::''++;;;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,::::::::::;;;;;;'''++######@@##+''''#@@##@@@@@@@###+''''''::::,,,,,,,,,,......,..,:,:''+++'+++++++++++++++++''+++':::;::,,...,;;';,..,'++',,.,,..,'+++++++++''+++++++++++++'';;;;;;,,,,,,,,,,,,,,,..,,.:'''++++':::''';::,,..,
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,..,,,,.,,,,,,,,,...,,,,,,,,,,,....,,,,,.........,,,,,,,.,,,,,,...............,,,,,,,,,:::;;;;'''+@##@@@@@@@@###'':,,,.,:::;;;;'++##;;;::::::::::,,,,,,,,,,........................,,,,,,,,,:::::::::::;;;;;'''++######@@###++++@@@@#@@#@@@####+'''+'':,::,,,,,,,,,,........,,,:'#+'++++++++++++++++++++''++++,.,:;;;:.,,:++++,..:++++:.,,';:,,:;'+++++++++++++++++++++++;;'';;,,,,,,.,,,,:;::,..,,:;''++++'::::'+';:::,,.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,..,,,,............,,,.,,.,,,,,,,..............,,,,,,,,,::::;;;;'''#@##@@@@@@@@@#+++;:::,,::::;'++#++#;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,:::::::::::;;;;;'''++#######@@@##';+##@@##@@@@#@@##++''+''::::,,,,,,,,,,..,,,,.,,.:+#+'::'+++++++++++++++++++'++++:.:++++',.,'++++:..:++++:.,,;++;,.,,;++++++++++++++++++++++'''';;,,,,,,,,::;''''';;::;'''+++';,:::;'++':::,,
,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,.,,,,,,,.,,,,....,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,,,,..............,,,,,,,,..............,,,,,,,,,::::;;;''''#@#@#@@#@@@@@#++;:,,:,::;:;';'++#+';;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,:::::::::::;;;;;'''++######@@@@##+'+#@@@@#@@@#@@@@#+++''''::::,,,,,,,,,,,,,,,,,,,:+++';;;'''+++++++++++++++++''+++;.:++++';,;+++++:..:++++:.,,,+++:...,;'+'''''++++++++++++'+++'';,,,,,,:;''''''++++'';;'''+++;::;;''''++';:,,
,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,......,,,,,,.,,,,,,,,.............,,,,,,,,,:::::;;;'''+@@##@@@@@@@@@##+:::,..,:,:::'''+++;;;::::::::::,,,,,,,,,,,.......................,,,,,,,,,,,::::::::::;;;;;'''++######@@@@@#+###@##@##@@@@@####++''''::::,,,,,,,,,,,,,,:,,,:++++;;'++''+++++++'''''''++++'+++;,;+++++''++++++',,'++++:,,,,:++',,,,;'+';;:;'++++++++++''''+';:,,,,;'+++'''''+++++';;''++++::;+++++''++';:;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,......,..,.,,,,,,,,,,...........,,,,,,,,,,::::;;;;'''#++@##@@@@@@@#+#+':,,,.,:,:,:'+'+++;;::::::::::::,,,,,,,,,.......................,,,,,,,,,,,:::::::::::;;;;;'''++######@@@@@##+##@#@@##@@@@@@###+++'''::::,,,,,,,,,,,,,::,:+#+++'''+#++++++'+++':,,,:;;;;'++++;,;+++++''+++++++:;+++++:.,,,,;++':.,;'+';;;;''+++++++++'''''':,,,;'+''''''''';;;'''''''++++;'++++++';;'''''
,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,..,,,,.,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,.,....,,,,,,,,,,,.........,,,,,,,,,,,::::;;;''''@++#@@@@@@@#####';:,::,,::,;';+++#':;::::::::::::,,,,,,,,,,......................,,,,,,,,,,,:::::::::::;;;;;''+++#####@@#@@##+'##@##@@@@@@@@@######+''::::,,,,,,,,,,,,:::;+#+#+'''++++++++''++++';;::,,,,:'+++;,;+++++''+++++++'++++++:,,.,.,'++';;'++';'''''+++++++++'''''':,:''+;:::'''''';:,;'''''+++++++++++++'::;'+++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,.,,,,,,,.,,,..,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,::,,,,,,,,,,.....,,,,,,,,,,,,::::;;;;'''#####@@#@@@@@@@##;,,,,,,:;;:'+''+#+':::::::::::::,,,,,,,,,,,.....................,,,,,,,,,,,::::::::::::;;;;;''++######@@@#####++#@@@@@@@@@#@@@#####++':::::,,,,,,,,,,,:;:'##+++###+++'''+++++++++++''';;;;;'++:.:'++++'+++++++++++++++;,,,,,.,+++++++++'+++++++++++++++'+++';;++;:,::;;''''';::;'''''+++++++'+++++;,:'++++
,,,,,,,,,,,,,,,,,,,,..,,,,,.....,,,,,,...,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,.,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;''''#'+@@@@@@@@#@@#+';,,,..,:;;;;;++++';;::::::::::::,,,,,,,,,,,....................,,,,,,,,,,,:::::::::::::;;;;'''++######@@@@@@@@#+#@@@@@#@@@@@@@@##++++;::::::,,,,,,,,,,:;;++++#@@######;,::;;'++++++++++++'''+':.;+++++'+++++++++++++++;,.,.,,.:++++++++++++++++++++++++++++++++::,:::;;''''';::;;'';;;'++++++'+++'::'+++++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,.,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;;'''+#'+##@@@@@@@@@@#;'':...:;::;;;;'+';::::::::::::::,,,,,,,,,,,,...................,,,,,,,,,,,:::::::::::::;;;;'''++#####@@@@@@@@@#@@@##@@#@@@@@@####++++:::::::,,,,,,,,,,:;;'+#@@####@#;,,,,,,,,,,,:;'++++'''''+':.:'++++'+++++++++++++++;.,,,,.,.;++++++'''+''++++++++++++++++++':,:::;''''''':,:;;;';::;'+++++++++;;'++++++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,,::,,,,,,,,,,,,,,,,,,,,,,,,,,:::::;;;''''+@####@@@@@@@##@#'+;:,,.,:::;'+;++';:::::::::::::::,,,,,,,,,,,..................,,,,,,,,,,,::::::::::::::;;;;''+++#####@@@@@##@##+##@#@@@#@@@@@#####++':::::::,,,,,,,,,::;''#@######':,,,,,,,,,,,,,,,;'++'';:,:;'::'+++''+++++++++++++++;...,,..,'+++'';::;';;'';;'+++++++++++';'::,::;'''''';::;'';::,:;++++++++++''+++++++
,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,:::::,,,,,,,,,,,,,,,,,,,,,,,,::::;;;'''''+##@@@@@@@@@@@###'':::,,,:;;;'+'+'';:::::::::::::::,,,,,,,,,,,,................,,,,,,,,,,,:::::::::::::::;;;;''++#####@@@@@@@@@##++#@@@@@#@@@@@@@@##++'::::::::,,,,,,,:::;'+++++##+:,,,,,,,,,,,,,,,,,,,;'++';:,,;''''++''+++++++++++++++';,,..,,,''++';;::;'''';::'';;'+++++++':::,,:;''''''';::;';;:,:;;++''+++''''++++++++
,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,:::::;;;'''++##+#@#@@##@@@@@#';;::,,::;;:;'';;;;:;::::::::::::::,,,,,,,,,,,,..............,,,,,,,,,,,,,:::::::::::::::;;;'''++#####@@@@@@@@@#@@####@@@@@@@@@@@##++++::::::::::,,,,::::;''+'#@+;:,,,,,,,,,,,,,,,,,,,,,,;++++;:;'++++;,:++++++++++++++++'':,,::;'''++';:;;''+'::;';::;'++++++++';::;''''''+';:;'''';;';;'+'''':::;'+++++++;
,,,,,,,,,,,,,,.,,,,..,,..,,,,,,,,,,,,,,,,,.,,,,.......,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,.,.,::::::,,,,,,,,,,,,,,,,,,,,,,,::::;;;'''+'#@@@#######@@@@#+'';:`,,:,:;;;;';';:;:::::::::::::::,,,,,,,,,,,,,,..........,,,,,,,,,,,,,::::::::::::::::;;;;''++#####@@@@@@@@@@@++#@@@@@@@@@@@@####++++::::::::::::::::::;;'++++':::,,,,,,,,,,,,,,,,,,,,,,:'+++''''+++;.,+++++++++++++++++'';''''''''++';::;'';:;';:,:'+;:'+++++++''''''''''';;'''+++++++'++'';:,:'+++++++;:
,,,,,,,,,,,,,,,..,,,,,...,,,,,,,,,,,,.,,,,,,........,,,,.,,,,,..,,...,,,,,,,,,,,,,,,,,,,,,..,,,,,,...,,,,.,::::::,,,,,,,,,,,,,,,,,,,,,,:::::;;''''++####+#@##@@@@@##+'';:.,,:,:+';'''#'::::::::::::::::::,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,:::::::::::::::::;;;;''++#####@@@@@@@@@@#+''#@@@@@@@@@@@####++++:::::::::::::::::::;''++';;::,,,,,,,,,,,,,,,,,,,,,,,,:::;++'+++:.,++++++++++++++++++'''''''';''+';,:;'';;;';;:;'';:;++++++++''''''''''++++'++#+++#+#+''':,;+++++++;:,
,,,,,,,,,,,,,,,,,,,..,.,...,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.,,.,,,,,,,.,::::::::,,,,,,,,,,,,,,,,,,,,,::::;;;'''+++##++##@@@@@@@@@#+;:::,.,,,:'''++;+'::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::;;;''++#######@@@@@@@@####+@#@#@##@@@@@@##+++++::::::::::::;;;;;::;;''''';:,,,,,,,,,,,,,,,,,,,,,,,,,,,.,:+++++':,'++++++++++++++''++''''''''''++;;;++''''++++'''';:;'++++++'''''''''++#+''++';:;;'++'+'::;++++++';::
,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,.,,,,,..,,,,,,,::::::::::::,,::,::::::::::;;;;'''+++####+++'';:....,,..,,,.,:::::::::,,,,,,,,,,,,,,,,,,,:::::;;'''++++##+#@##@@@@@@#@#+;;:,,..,:;;''++'+;:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::;;;''++####+#@@@@@@#@@@@#@@@#@#@@#@@@@@@##+###+;::::::;;;;;;;;;;;;;;''''';:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'++;:';,'++++++++++++++''+++'';''''++'+'++++''''+++++++++:,:'+++++';'''''''+#+''++':::,,::'+#+';'++++++++;:
,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,,,,,,::;;;;;;;:;::;;::::,,,,,,,,,,,,,,,,:;;''+++#@@#+;:,..,,.,.,::::::::::,,,,,,,,,,,,,,,,,,,::::;;;'''+++##+##@@@@@@@#@#@#';';::,,:''''+'##+:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::;;;''++####+@@@@@@@@@@@#+##+@@###@@@##@###++###':::;;;;;;;;;;;;;;;;;'''''::,::::,,,,,,,,,,,,,,,,,,,,,,,,,;++;,,;'++++++++++++++'''''++'''+++++''''++''+++++++++++++;::'#++';;'''''''+#+'+#+';;;;;;;'++++'++++++++#';
,,,,,,,,,,,,,,,,,,,,,,,,,::,.,:::::::;'''+######@@#@@@@@@@@@@@@@@####################+++###@@#@##':,,...,;::::::::::,,,,,,,,,,,,,,,,:::::;;;'''++++###+'##@@@@##@@@@+;';:;;:;'+####@#;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::;;''++####++#@@@@@#@@#@##+;:##@@@@@@@@@@#######+;::;;;;;'''''';;;;;;''''':::;;;'';;;;;;;:::::::::,,,,,,,,:'++;::+++++++++++++++'''''''++++++++''''+++++++'''';'++++++''+++';;''''+++++#+++++++'''+++++++++++++++++++
,,,,,,,,,,,,,,,,,,,.,:;+++++#####@####@@@@@###@##################@@@@@@@@@@#@@@@@@@@@#@@@@##@@@@@@##;.,,:;::::::::::,,,,,,,,,,,,,,,::::::;;''''+++++#@######@@#@@###':';:,::;''+++@@#;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::;;;''+#####+++#@@@@@@#####+;;#####@@@@########++++;:;;;;''''''''';;;;;'+';:,,::;''+++''''''''''''''''';;;;;;+++++'++++++++++++++'''''''++++++++'++++++++';;;;;::;++++##++++';;'+++#''++++++++##';:;;;+#+++++'++++++++
,,,,,,,,,,,,,,,,..,:'#@@@@@@@@@@@@@@#########################################@@@@@@@@@@@@#########@@+,,:;:::::::::::,,,,,,,,,,,,,,::::::;;;'''++++#####@@+#@@@@@@@#+',::,..,:''++###+;::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,:,:::::::::::::::::::::;;''++####++'+@@@@@@@@@@##++++@@#@@@#########++++#';;;;''''''''''';;;''+';::::,:::::;;''++++++++++++++++++'++++++++++'+++++++++++''''''''++++++++++++';;;;;;;:,,,:'+#+''+++''''###+''#####++#++#+';,:++++++';'+++++++
,,,,,,,,,,,,,,,,.;#@@@@#++++++++#####@#@@@@@@@@@@@@@@@@@@@@@@@@@##@@##############++'';;::,,,,,:;'@#+';;;:::::::::::::::::,,,,,,:::::::;;;'''++++#@@@++@#+@@#@@@@###+:,,:,.,:;'+##@#;:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;'+++####++'#@#@@@@@@@@@@++'+##@@@@@#####+###+++#+;;;;'''''++'''';;;'++;'''''''';''''''''''+++++++++++++++++++++++++++++++++++++''''++++''++++++++++'::;''':,,,,,:'#++'''''''##+#+'+++++++#+++####+'+++++++'++++++++
,,,,,,,,,,,,.,,,,'@#########++';;;;::::::::;::::;;;;::;;:;:::::::,:,,,,,,,,::,,,,.............:'##@++';;;:::::::::::::::::,,:::::::::::;;;'''++++#@@@#####@@#@@@###';;;;:,,::;:+''@#;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;''++######++##@@@@##@#@+##'';;'@@#@@##############''''''+++++++''';;'++''''''''''''''''''''''+++++++++++++++++++++++++++++++++++'''++++++''++++++++''';;'';,,,,,:;+#+#'''';'+####+++'::::'+###++++###+++++++++++++++
,,,,,,,,,,:,.,:+++@#@#++++++####++'::,,..................,,,,,::;;''''''''';;:,,,,,..,....,:;'#@@#+#+;;;;:::::::::::::::::::::::::::::;;;'''++++#@@@@@@@@@@@@##@##@+;;;:,.,,::'#++#+;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;'++#####@#+#++##@@@#@@###+::+###@##++###+#######+'''++++++++###++'''''::::;;''''''''''''''''''+++++++++++++++++++++++++++++++++++'''++++++'''++++++;;'''';:,,,,:;+#+'''++'''+###+#+':,:;'+###+'''+#+##++++++++++++++
,,,,,,,,,,,.....,+@##########+++++''''';;;:,,,,,,,,:::;;;''''++###@@@@@@@@@@@###++';::;;;'##@@@#+'+#;;;;:::::::::::::::::::::::::::::;;;;'''+++#@@@@##@@#@##@@@@@##+';:::,,::;'+##+':::::::::::::::::::::::::::::::,,,,,,,,,::::::::::::::::::::::::::::::;;''++#######+++'+#@@#@@@###++';#@#@#+++#########+'';''++###########+++++;;:,,.,:;''''''''''''''''''''''''''''''''';''''''+++++++++++''+++++++'''++++'::;'''''';::;++';;'+++'''+###++';;'+##+';;;:;+#+;'+++++++++++++++
,,,,,,,,..`.';;:,:#@@#####@@@@@@#############++++++++++++++###############+++##########@@@@#####;'#;;;;::::::::::::::::::::::::::::::;;;'''++++#@#@@+'@+#@@#@@@@@#++';:::,.:;';'###'::::::,,::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::;;''++#########+++++#@@@#@#####+'#@@@#+++######++'';;;;''+###########++++++++';;:,,,;'''''''''''''''''''''''''''''';;''''''+'+++++++++++''+++++++''+#+;,,;++++##+'''+'::'''''+''+###+'+##+';;:,,,,,:+#+:,;'#++++++++++++
,,,,,,,,.`.;+###++;+@@##########@@@#@@@@##@@@#@@##################################@@@@@#######@#'+';:;::::::::::::::::::::::::::::::;;;'''+++++@@@@@##@+#@@@@#@@#++';:::,,.:;':+++#';::::,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;'++#####@####++#''##@##@@++####@#@@+'''+++++++'';;:::;''++####+###++++++++++++++';;;'''''''''''''''''''''''''''';;'''''''+++++++++++++'''+++++++''+'::'+#+'+'++++'';:;';:;+#+'####++++':,,.,,,,,,,'#+',,;#++++++++++++
,,,,,,,.`.;+##@#+#';'#########################################################################@+;';::::::::::::::::::::::::::::::::;;;;'''++++#@@@@@@@@#@##@@@@@#+#';:::,..::;;+++#;:;:::,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;''++###@@@##++++''+@#+####+++@@@@#@#+'''''+++''';;:::::;;;;'+++++##++''++++++######+;''''''''''''''''''''''''''';;;'''';;'++'''++++++++++''+++++++''''''';;';:;''';;''''::'##''####+':,.,:;;;;;:;:;'##+;::+++++++++++++
,,,,,,,`,;+##@+#@@+;;;###############++''';;;;;;;;;;;;''''###############################@@@@@@';;:::::::::::::::::::::::::::::::::;;;'''+++++@@@@@@@@@@@##@#@@@@##';:,.,..,,;:;+#+;;;:::,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;'+++######@@#+++''+####+#++#####@#@#@+'+'''''''';;;:::::::::::;;';'##+++++#########@#'''''''''''''''''''''''''''''''''+'''''''''''+++++++++''++++++++++;:,,;';:;';:,:;;'''+##+''+####+;:;'+#######+###+#+';'++++++++++++
,,,,,:.`:+#@@#+#@@#'';+@#@#########@##########+';;+#####+#########+#####+################+++++';;;::::::::::::::::::::::::::::::::;;;'''+++++#@@@@@@@@@@##@@#@@@@#++::,,:::,:''''##';;::::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::;;;''+####@##@@###+''+++####@+#@##@@@#@@#++''''''''';;;:::::::::::::;;;+#+++##########@@+'''''''''''''''''++'++++++++++++++++'''''''''''++++++'++''++++++'+';:,:'''';:,,:;''+#####''#####################+#+##++++++++++++++
,,,,,,.`,+#@#+;;+@@+;'+@###@@################+#+++++######+##+++++++++++###+#+##++'';;;:,,:;;;;::::::::::::::::::::::::::::::::::;;;'''''++++@@@@@@@@@@####@@@@@@#'#';::,:::;+##+@#';;::::,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::;;;''+#####@##@@####'+;;''+++###@+#@@@#@@+++''''''''';;;::::::::::::::::;######@##@@##@@@+''''''''''''''''''''''+++++++++++'+++';;;;'++'''+++';'++''+++++;;'+';:;;'';,,,:'++#######''###################+##++###+++++++'''+++
,,,,,,.`:###@#';'+##;;'######++++'''''';;:::::::,:'':;'';;;;'';''++++'';';;;++';;,,:,,::::;;';:;;:::::::::::::::::::::::::::::::;;;''''+++++@@@@@@@@@@@++@##@@##@@+#';;:,:,:;'+###+;;;;::::,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::;;;'++####@@###@@####+';;'''''++@#+#@@@#@#+++'''''''''';;:::::::::::::::,,'@@@@@@@@@@@@@@@'''''''''''''''+++++'''''+++++++++++++++'''++++'''++''++++'+++++''++++'''';:,,,;'#########''########################++++++++++++++;;
,,,,,,,:+###@#';'+##+''#@####'''';;;;;;::,,:::,,,,;;,::;;;:::::'+++'+';;;;';'+','::::::::;;;;;;;::::::::::::::::::::::::::::::::;;;'''++++++@@@@@@@@@@@#+@##@@####+;:,:,,,.,:;:'+#';;;;:::::,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::;;''++#########@@@#+++#''+++++#++@##@@@@@#++++++'''''''';;;:::::::::::,:::::#@@@@@@@@@@@#@#''''''''+++++++++++++++++++++++++++++''+++++++++'''''++++++''++++++'''''';:,,::'##########++###################++'+##+++++++++++#':'
,,,,,,,+#####@':,;#@@@##@####+'''';;';;:::,:,,,.,,';,,:::;;;:,:+';;:;';::'+''';:';;,,:::::;;;;:::::::::::::::::::::::::::::::::;;;'''++++#+#@@@@@@#######@###@@#+';;:,,,,.,,:';;+#+;;;;;::::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::;;;'++##########@@@#+'+#'##+++'#####@#@@@##++++++'''''''';;;::::::::::::::,:,'@@@@@@@@@@@@@+;''''++++++++++++++++++++++++++++''''''+++''++++++''++++++++'++':,,,,:;'';,,:;'###############################+;,,:+###+++++++++++'+
,,,,,,.'@#####;,:'###########+'''';'';;::,,:,,..,:':.,,:;'':::;;:,:;''':;'''';''';;,,,,::,:;;:::::::::::::::::::::::::::::::::;;;'''++++#'+@@@@@@@##@##@#@@##@@#@#++;:::,.,::'+++#@';;;;:::::,,,,,:::::::::::::::::::::::::::::::::::::::::::::;;;''++####@#####@@##+';+++''#++;++@++##@@@#+++++++''''+'''';;:::::::::::::::,,:#@@@@@@@@@@@@;:''++++'+++++'''''++++++++++++++++++''+++';;'+++++''''''+++++''+;,,,,,,:;;:,:'###########################++####+''+##+#+#+++++++++++
,,,,,,,,#@##@#';;'+##@#######+'''';'';;;:,.,,.`.,:;..,,:;;;::';;;::''''''''''''';,;,,,::,,:;;::::::::::::::::::::::::::::::::;;;''''+++##'#@@@@@@@@@@@####@#+@@###++;::::,,:;'+++#@+'';;;::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;'''++###@@####@@@##++'''';;##++##@@#@@@@@++++++++'''+++''';;::::::::::::,::::,+@@@@@@@@@@@#;;'++'''''+++''''''+++''''''''++++++++++++''';'+++++'''''++++++++';:,,,,,:;;;'+#######################++#;,:+############+++#+++++'++
,,,,,,,,+@##@#+';''#@#######@#'+''';;;;;:,.,,.``.,,``.,:,..:,;;:';:;;''''''''''',`::::::,,;:::::::::::::::::::::::::::::::::;;;;'''+++##+#@@#@@@@@@@@@@@#+###@@#+++';:,,,,.:;+''+#@+''';;;::::::::::::::::::::::::::::::::::::::::::::::::::;;;;''+++###@######@@@#+'+;:::'''#@#@@#@@@@@@#++++++++'''+++''';;;:::::::::::::::::'@@@@@@@@@@@+,;+++''''''+++''''+++'''''''+++++++++++++++'';'+++++++''''++++#++'+':::;;'++#+'''+###################+''#;:;+##########++#+++++++++++
,,,,,,,,+@++@##+::'+@#########+#';;;;;:;:..,:.```,,``.,,...,,:,;;;::;';'''''''+;,.,;::;;:;;::::::::::::::::::::::::::::::::;;;'''''+++#+#@@@@@@@@@@@@@@@@@@@@###+'';::.,,,`,:;;+++@+''''';;::::::::::::::::::::::::::::::::::::::::::::::::;;;'''++++#########@@@###'';:,:'+'+@##+++####+++++++++++'''+++''';;:::::::::::::::::;#@@@@@@@@@@'::;'++'''''+++'''+++++'''''''+++++''''++++++';'++++++++'''+++++++++''++++#+###++'+########################################+#+++++++++
,,,,,,,,+@#'#@#',,:;+###########';;;;:::,,..,.```,.........,,,:;;;;;;;''''''+++:..,;;'';::::::::::::::::::::::::::::::::::;;;;'''++++#++@@@@@@@@@#@@@@#@@@###@###+':,,:,,,.:;;'##+##''''';;;:::::::::::::::::::::::::::::::::::::::::::::;;;;''+++++#@########@@@##+'';::,,;'+#++#+++++++++++++++++'''++'''';;::::::::::::::::::#@@@@@@@@@@';:::'+++'''+++'''+++++'''''''''''''''''''++++'''+++++++++''+++++++++'+##+#+'+##+'+#######+'+#########################+###++#####+++++
,,,,,,,,+@####+'+###+#############+++'';;::,,,,....,.........,::::;;;;''''''+++;;''++;:::::::::::::::::::::::::::::::::::;;;;'''++++##+#@##@@@@@@@@####@@#########+;:::,,,.:;''##+++'''''';;;;:::::::::::::::::::::::::::::::::::::::::::;;'''+++++###########@@@@#++';::,.:;++++#++++++++++++++++++''+++''';;;:::::::::::::::::#@@@@@@@@@#++''''+++'''++++'''+++'''''''''''''''++++++++++++''++++++++'''++##++++'+++++''++;'########+'+###################+++#########+##+++++++
,,,,,,,,+@@@#+#@@@@@######################+''';::::::;:::::::;;;;;;';''''''++++++++'::::::::::::::::::::::::::::::::::::;;;;'''++++##'#@###@#@@@@@#@@@@@@########+';;,,,..`.:'''++++''''''';;;:::::::::::::::::::::::::::::::::::::::::;;;;''+++++###########@@@@##++;;;,,,,:'#++#++++++++++++++++++++'+++''';;;::::::::::::::::#@@@@@@@@@#'+++++++++++++++'''+++'''''''''''+++++++++++++++++''+++++++++'+++#+++#+'++#++##';+#############################+''+++#######+##++#++++
,:,,,,,,'+++##+@#+++##########################++'''''''''''''''''''''''++++++++++'::::::::::::,,::::::::::::::::::::::::;;;'''+++++#++@@@#@@@@@@@##@@@@#@@@@#@@#+':::,,,,..,'+'+###@#''''''';;;::::::::::::::::::::::::::::::::::::::::;;;''++++##########+##@@@###''';;,,,:;+#''##+++++++++++++++++++++''''';;;:::::::::::::::;@@@@@@@@@@#++++++++++++++++++++++''''''''++++++++++++++++++''++''+++++++++'++++++#+++##+++'++#+''#####################++++++++++######+#######+++
::,,,,,,+#;'##+#++###############++++''+++++''+''+''''''''''''''++++'+++++++'''';::,:::::::,,,,,,,::::::::::::::::::::;;;;'''+++++#''@@@@@@@@@@@@@#@##@@@@@###+++#''':::::;:+++###@@#''''''';;;;:::::::::::::::::::::::::::::::::::::::;;'''+++###++#####++#@@@@###''':::..;;'#++###+++++++++++++++++++++'''';;;:::::::::::::::'@@@@@@@@@@#++++++++++++++++++++++'''''+'+++++++++++++++++++';+++'++++++++++++++++++++#+;::'####+'+##+++###################################+;:'#++
::::,,,,+#::@#'+''+##############+'';,.,,::......:::;;''''+++++++';;'+''''++';':,,,:::,::,,,,:,,,,::::::::::::::::::::;;;''''++++++'#@##@#@@@@@@@##@##@@@@@@@#++'+';;,,,.::,;++++##@@+'''''''';;;;::::::::::::::::::::::::::::::::::::;;;'''+###+++######+#@@@@@@#@#+;,,,``,,:';'#####++++++++++++++++++++''';;;:::::::::::::::'@@@@@@@@##+++++++++++++++++++++++++++++++++++++++++++++''++++++++++++++++#+++''++++++#+;,,'###########+###############################++##',,'#++
:::::,,.++,:@#''+;;##############++++::..,,.....`::::;++''+++++++';'+++##++#++:,,,,,,::,,,,,,,,,,,::::::::::::::::::;;;;;'''++++#+'#@@##@##@@@@@@@#@#@@@@@@@@@##'';:;,,,.,..:'++###@@#'''''''';;;;::::::::::::::::::::::::::::::::::::;;;'+###++++######+#@@#@@@@##+':::,,,.,;';'######+++++++++++++++++++++'';;;:::::::::::;''+#@@@@@@#+''';;;;;;;::;'''''+++++++++++++++++++++++++++++++++++'''++++++#+++#+';'++++++'';;############################################;:+#+++##+#
::::::,.++,:@##@#::###############+##':,,,.....`.:::;'''+++++++++++++++++++#+:,,,,,,,,,,,,,,,,,,,,:::::::::::::::::;;;;;'''++++#+::@@####@#@@#@@#@@@@#@@@@@##@##+';:::,:.,.,;'+##+#@@+;''''''';;;;;::::::::::::::::::::::::::::::::::;;;'++##++++++####++#@@@@@###+;:;;;,:.,,;';+#######++++++++++++++++++++++';;::::::::::;'''+#@@@@@#+++';::::::;:::;''''+++++++++++++++++++'''''+++++++++++''+++++'++##+##++''+#+::;+##########################+++#################+'+######+#
::::::,.'+,,#@@@+::#@##############+#+;'::,,....:::;';;''++++++++++++++++##',,,,,,,,,,,,,,,,,,,,,::::::::::::::::::;;;;'''++++#;:,:@#####@@@#@@@#@@@@#@@@@@###@+++';;:,,.,,,;'+##+#@@#;;;''''';;;;;;:::::::::::::::::::::::::::::::::;;;''++''++++####++#@@@@@@##@+''':,.``,,:;;+########+++++++++++++++++++++++';;::::::::::::+##@@@#+'+++';;:::;''';'''''+++++++++++++++++++++++++++''++++++++++++++++++###+++''';::'#########+++#############+++++########################+###
:::,::,,'#:,#@#@'::+@###############+#+;::,,.`,::::;''++++++++++++++++++++',,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;';''++++;,..'@#####@@@@@@@@##@@#@@##@@@@##+;;;;:..,,,,'+''##+#@#;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::;;;'+'''++++###++##@##@@@###+#';,.` `,:';;######+###+++++++++++++++++++++++++';::::::::::'+#@@#++++++++'';;'+++'++'+++++++++'''+''''++++++++++++++++++++++++++++++++###++#++';'+#+'+###+++++################++##########################+##
::::::,,;#;,#@#@':;+###############+'++:::::,.:::::'''+++'+++++++++++++++;,.,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;'''++++:,.,,+@@#+@@@@@@#@@@##@@@@@@@@@@#+#+;';::..,..,;;';+#+#@#;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;'+';''++++##+++#@@@@@@###+;;';;.```,:;''######+++##+++++++++++++++++++++++++++'';;::::;'++##++++++++++++++++++'''''++''++++''''''''+++++++++++++++++++++++++++++++#+#+++##''+##''+##+''++#################++#######################++###+
:::::,:,;#',#@#@':;+###########@####+##+::;';;::::''+;'''''''''+++++++++;,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;;;;'''+++':,,,,,'@@##@@@@@@@@@@@@#@@#@@@@@@##++;;:::...`,:;;'+'+#@@#;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;'';'''++++##++#@@@@@#####;:;';:.```.,:;+######++++###+++++++++++++++++++++++++++++++++'+++++++''+++++++++++'';;;;;;'+'''''''''''''''+++++++++++++++++++++++++++#+++##+++++++###++####++####################++######################+:;+##
:::::,:::#',+#@@':;+###########@##@####+';;;;;:::;''+;;''''''''''''''+';,.,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;''''++',,,,,,,'@@###@@@#@@@@@@@##@@@@@@@@@#'';,,:,.....,:'++'#@@@#;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::;;;;;''+++##++#@@@@#@@@@@#;+':,.```.`.:;######++++++###++++++++++++++++++++++++++++++++++++++++'''''+++++++++''''';;'''''''''''''''''+++++++++++++++++++++++++++++++##+++++#+';+#####+++############################################+:,:;+
::::::::,#+::+#@';;+#@#############@@###++'';;::;''+':;+''''''''''''+':..,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;;;;;;'''''+;,,,,,,,,'@####@####@@@@@@#@@@@@@@@@@+;++:,:.,....,:'''+##@@#;;;;:::::;;;;;;;;;:::::::::::::::::::::::::::::::::;;;''++++++##@@@@@@#@#'+'';,:`` `..,:'######++++++++#++++++++++++++++++++++++++++++++++++++++';''+++++++++++++++'''''''''''''''+++++++++++++++++++++++++++++++++++##+++++#+:,;+#++'';'###################++########################;,,,;
::::::::,##;,'#@':;+###########@+++#@@@@++'';;;;'++':::+;:;'''''''''':.,.,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;;''''+;,.,,,,,,,#@#@@@@####@@@@###@@@@@@@@@@#+''':,,..,..:;;:+#+##@#;;;;:::::::;;;;;;;:::::::::::::::::::::::::::::::::;;''+++++++#@@@@@@#+++;';;';;.``..:,:+######++++++++####+++++++++++++++++++++++++++++++++++++';'+++++++++++''+''''''''''+'''+++++++++++++++++++++++++++++++++++++###+++++++;;;'+';;'''###################++########################':,,;
::::::::,+@','+#;;'+#############+++#@@#++''';;'++'::::+:,:;:''''''':.....,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;;''''+;,,,,,,,,,,#@@@@@##@+#@@@@#+@@@@@@@@@@@@+';;:..```.`:::;'+###@#;;;;:::::::::;;;;;:::::::::::::::::::::::::::::::::;;''++++++#@@@@#@@+;'+#'+'+;,```..::;#######++++++++++###++++++++++++++++++++++++++++++++++++';'++++++++++'''+++''+'+++''++++++++++++++++++++++++++++++++++++++++###++++++#+';;;::;'+##################++###################''######;,,;
::::::::::@+,;#+;'++#####@#######++++#@#+++'''+##+;::::':,:;:;''''':.......,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;;'''''+;,,,,,,,,,,,#@@@@@#+##@@@@@@#@@@@@@@@@@###';;:,.``....,;;'+##@@#;;;::::::::::::::::::::::::::::::::::::::::::::::::;''++++++#@@@@@@###+++#;'';:.`````,:'#######++++++++++###++++++++++++++++++++++++++++++++''''++++++++'++++'''''+'''''''''++++++''++++++';'+++++++++++++++++++++++++#++++++''+'::;'+###################++####################++#######:,:
:::::::,:,+@'+@+'+++##########@#++++++#@#++++###+;::;:,'::::::'+'+;...........,,,,,,,,,,,,,,,,::::::::::;;;;;;;'''''';,,,,,,,,,,,,#@@@@##+#@@@@@#@###@@@@@@@@#@#+';::,`.....,';'+++@@@;;;;::::::::::::::::::::::::::::::::::::::::::::::;;''+++++#@@@@@@@#++##++;::,..` ``.,,'########++++++++##+++++++++++++++++++++++++++++++++''''''++'+++++'++++'''''''''''''''+++++''++++++';''+++++++++++++++++++++####+++++';;++''+###+#################+#################++###########'::
:::::::::::@@@#+++'+#@######@#@#++#++++###+####+';;;;:,',,::::;'+;..............,,,,,,,,,,,,::::::::::;;;;;;;;;'''++;,,,,,,,,,,,,,#@@@@@@#@@@@@@#@@@@@@@@@@@@@#++':,:.`````.::''''+@@@';;;;:::::::::::::::::::::::::::::::::::::::::::::;'''++++#@##@@@@##';+#+'';;:.````.::;##########+++++++#+##++++#+++++++++++++++++++++++++';''''''';+++++'+++++'''''+++++'''++++++++++++++;;';''++++'''++++++++++++++##+++'+';;''''++#+####################################++########+'+#';
:::::::::::'@##+##+#@###@######@#@@@#########+##+';;;:,:,::::::''...............,,,,,,,,,,,,::::::::::;;;;;;;;'''++;,,,,,,,,,,,,,:#@@@@@##@@@@@@@@@@@#@@@@@@@@+'+;,,,.`````.::;'+++#@@';;;;:::::::::::::::::::::::::::::::::::::::::::;;;''++++#@@@#@@@#@@#''+';;'':,````.::'##########+++++++++++++++++++++++++++++++++++++++++;;'''''';;++++++++++''++'++++++++'++++++++'++++++';'';'';;;;;'++++++++++##++#+'''+++++++';'+###############################################',,'##
::::::::::::#@#+###@@#######@@@@@@@@@@@@#@@##@##+++++++++++'''+',...............,,,,,,,,,,,:::::::::;;;;;;;;;'''++;,,,,,,,,,,,,,,:@@#@@#+#######@@@@@@@@@@@@@##';;:,..`.``..,:;'+++#@@+;;;;::::::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@@@#@##@@+'++'';;,.``` .:'#############++++++++++++++++++++++++++++++++++++++++''''''+''+++++++++++++++++++++++'++++++++''''''++;;;;''''''';''+++++++#+++'''''++'+++##+';'###############################################+:,,+#
::::::::::::+@##@##@######@###+#######@@@@@@@@@@@@@@@@@@######+:................,,,,,,,,,,:::::::::;;;;;;;;;''''+;,,,,,,,,,,,,,,,:@##@###@@#++++@@@@#@@@@@@@@##+;;;:,.`.``..,::'''+##@#';;;;;:::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@##@######++++';:,.`` ``.:'@##############+++++++++++++++++++++++++++++++++++++#'';''+#+++#++++++++++'''+++++++''++++++'+':;;;;;';;;:''+++''';;++++++#+''';;'+'''+++++#+';;+################################################+'##
:::::::::::::@@############+';:;;;;''''';:::::::;:;;;''''''';;:.................,,,,,,,,,:::::::::;;;;;;;;;''''+;,.,,,,,,,,,,,,,,:@@@@##@@#@##+#@@@@@@@@@@@@@##++',,,.`````.,,,;;'+#@@@''';;;::::::::::::::::::::::::::::::::::::::;;;'''''+#@@@@####+##@##+#+';;:,.````.,:'@#################+++++++++++++++++++++++++++++++++++';;;;;++#+#++++++++'+';'+++++++'+''++++'+';;;''''''';'''++';;;;'++++#+';;'';''++''++'''+;;;'+###################################################
:::::::::::::'@@@@@@#@##@+'':;;:::;'';:;,.````````````.,,,,,,,..................,,,,,,,,,:::::::;;;;;;;;;;''''+;,,,,,,,,,,,,,,,,,:#@#@@###@##@#@@@@@@@@@@@@@@@++';,.,.``````,:::'++#@@@#;'';;;::::::::::::::::::::::::::::::::::::;;;'''''+@@@@@#@####@@@##+#+'';::.```..,:#@#################++++++++++++++++++++++++++++++++++';;;;;'++++++++++++++'''++'++++''+''+++++++';;';;;;''''''''';,;''++++';;;;'+'''++++++'';';;';'+##################################################
::::::::::::::'''+##@#@#+;:;::;;:;+';:;:::,........`,.`,,::::..................,,,,,,,,,::::::::;;;;;;;;;''''+':.,,,,,,,,,,,,,,,,;@@@@@##+#+++##@#@@@@@@@@@@@##'';:::````...::;;'''#@@##'''';;;::::::::::::::::::::::::::::::::::;;;;''''#@@@@@@##++####@@#'++';:..`````.:'####################+++++++++++++++++++++++++++++++++';;;;;'+++++++++++++++++++'++''''''++++++++++';'';;;''''';''';;''+#':;';:;++''++++'++#+++';;''+############+#####################################
::::::::::::::::::::#@##'::;;;:;:'';;;;;;::.........,,,::;;:,.................,,,,,,,,,,:::::::;;;;;;;;'''''+':,,,,,,,,,,,,,,,,,,;@@@@@@@#+++'+###@@@@@@@@@@@##'';;::.````..::;:;;'+@@#@+'''';;;::::::::::::::::::::::::::::::::;;;''''+#@@@@@@#+'+''#+##@+;'';;,``````.,:+@#####################+++++++++++++++++++++++++''''+''';;''''++++++++++++++'+++++++'+++++''''++++';;;''''''''':;''''';+':;'';::'+';;''''''++##';''++######+:'###+#####################################
:::::::::::::::::::,#@@#;;;;'';;:;;:''';:,,..........::;;;;,..................,,,,,,,,,:::::::;;;;;;;;;''''+':,,,,,,,,,,,,,,,,,,,;@@@@@@##++##@#@@@@@@@@@@@@@@#;';,,,.`````.,,:;,;''#@@@@''''';;;::::::::::::::::::::::::::::;;;;;''''+@@@@@@@#++';'++##@#++;';;:,.````,,:+@@#####################+++++++++++++++++''+''''''''''''''''+++++++++++++++++++'''++''++++++'+++';;;''+';''''''''''''+;;:;+'''';;+'';'++''''''++''''+######','###++#####################+++############
::::::::::::::::::::+@##';;;'';:::;;'';;::........`...:;;;,...................,,,,,,,,:::::::;;;;;;;'''''''';,,,,,,,,,,,,,,,,,,,,'@@@@@@+'''##@@@@###@@@@@@@@##;;;,,:.`````..,:;:'''#@#@@#''''';;;;;:::::::::::::::::::::::;;;;;;''''#@@#@@@@@#+'+'+##@#@+++;;;;::,``.,,:'##@####################++++++++++++++++++''''''''''''''++++++++#####++++++''+++''++++++++++++++;::;++'';;;''''''''''+''''';;+++''++''';;'''''''''''''######+;+###++#########++#########+''''###########
::::::::::::::::::::'@@#':;;;;::::;;;;;::;:,.....``,;.,:;:...................,,,,,,,,,::::::;;;;;;;'''''''+;,,,,,,,,,,,,,,,,,,,,,+@#@@#@#';;+++##@@@@@@@@@@@#+#+;''';,.......::::'''+@@##@+''''';;;;;;;;;;;;;;;::::::::;;;;;;;;''';+#@@@@@@#+++'''''###@#@+;';;;,````,,,:+@##@####################++++++++++++++++++';''++++++++++++++++##++''';;;;;;;;+++++++++++++++++++':;';;;;';;''''''+''+'++++;:+++++++''';:''';::;'''+'+#+###########++++######;;+########+'+++#######+++#
::::::::::::::::::::'@####++';::::::;;;::::,....`.`.,``.,,`..................,,,,,,,,:::::::;;;;;'''''''''':,,,,,,,,,,,,,,,,,,,,,+@#@@@###+;;###@@@@@@@@@#@@@##+'+;:;,`......,:::;;;'####@@+''''''';;;;;;;;;;;;;;;;;;;;;;;;;'''''''#@#@@@@@+;;;;;;:'##'++#';;';:,.````,::+#@######################+++++++++++++++++++;''++'+++++++++++++++';::::::::;''+++++++++++++++++++':;;;;;+++'';;;;'+''+''++++:'+''++';;';:'''';::'+++++#++######+'###+++######++#########+'++######++#++#
:::::;;:::::::::::::'###+#@@@###++''+'''';:,,,::`.``...,....................,,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,+@@@@#+#'+';+#+#@@@@@@@@@@@@@+;'',,,.``.``...,::::''++@@@@@+''''''''''''''''';;;;;;;;;;;'''''''''#@@@@@@#++;;;::;;'+###+++:;';.,.....:;'#@########################+++++++++++++++++++''+';'+''++++++++++';::,,,::::;+++'+++++++++++++++++';''++++''''';;;''''++''++++'+++++;:;;;:;''';::;''+++##+######+'#################''+############+'#####
:;;::;;:::::::::::::'@#@#++#@#@@@@@@#######+'';::::::;':....................,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,#@#@@#+;,;'''+##@@@@@@@@@@@@@#'+';;:....``...,,:::''''+@@@###'''''''''''''''''''''';;'''''''''''#@@@@@#@#'';;'::;;';#@#+++::;:,.,..,;:;'#@###################+###++++++++++++++++++++''+':'++++++++++++';::::,::;;;;'+++++++++++++++++++++++++'''';''''';;'''++';++++''''''';;;';;'''';::'++++#++#########################;:+###########+'##'+##
:::::;::::::::::::::'#####++#@###@@@@@@#@@@@@@#+++###@+,`..................,,,,,,,,:::::::;;;;'''''''''';,,,,,,,,,,,,,,,,,,,,,,,,#@##@#+;;::'+##@@@@@@@@@@@@@#@@#'';':::,...,,.,::,::';;'#@#@@#++''''''''''''''''''''''''''''''+#@@@@@##'';;::;::,::+''##';::,::,...,;;;'#@@##################+###++++++++++++++++++++++++'+###########+;;;::::;''';;++++++++++++++++++++++++''''''''''''';;;''';:;++++::;'+'++''';''''''++++;'##+##########################+#############'+++###
::::::::::::::::::::'@##+#+++###+##########@@@@@@@@@@@:`..`................,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,,#@@#@#''+';#####@@@@@@@@@@@#####;;;;;,,.,....,,,,,::;::;+#@@@@@##########+###+++''''''''''''+#@@@@@##++;:;,,,::,:::'':'+;:::,,:,..,::'++@@#@################+###++++++++++++++++++++++++##############+';;:::'''+++++++++++++++++++++++++++''''';'''';''+;;;;'';,:'+++;:''''''+'++'''''++++':'##########################################+''+####
:::;::::::::::::::::'@@#++##++##+++++++';;;;;;;';;;;':`..................,,,,,,,,:::::::;;;;;;''''''''':,,,,,,,,,,,,,,,,,,,,,,,,,@@@@#@##'';'####@@@@@@@@@@@@#@+#+''';;.`..,.....,,::,:;;'+++##@@@@@@@@@@@@@@@@@@###+'+''++#@@@@@###+++;;:,,,,,.,:;::'''++;;;:,:::,:;;;'#@###################+###+++++++++++++++++++++++++##############+;:::;++++#+++++++++++++++++++++++++'''''''''''''+++''''':;++++';++;::;'''+'''';'++;:'+######################+';;+###############+''+####
::;;::::;:::::::::::'@#@###############+'';;::,;':::,...`................,,,,,,,::::::::;;;;;''''''''';,,,,,,,,,,,,,,,,,,,,,,,,,:@@@@@@#+;.,;+++#@@@@@@@@@@@@@#;+'+;';;:,...,,,,,,,,,,:;;'+''#####@@@@##@@@@#@@@@@@@@@#@@@@@@######+'+':::.,,,,,::';;'++++';;:;:,::;''++#@@@################++##++++++++++++++++++++++++++++++#######@###;::;'++++++++++++++++++++++++++++++'''''''';''''''+''+';;'++++++++';''++++'''';'+';'++++####################+';;+##############+'''+####
;;;::;;;;:::;::;::::+@#@#+##############+';';:::++;;,...................,,,,,,,::::::::;;;;;;'''''''';:,,,,,,,,,,,,,,,,,,,,,,,,,:@@##@#'':`:;+#++#@@@@@@@@@@@#+';;';+;:;;:..::,,,,,,::,:;''''+++++#####@@@@@@@@@@@@@@@@@@@@####++++';';:,,,,,.,:::;''++''+;,:;;,.,:''''+#@@#@################++++#+++++++++++++++++++++++++++++#####+++++'::;'++#+++++++++++++++++++++++++++''''';;;;;;''''+;'+;,;++++'+++';;'++++++'+';'+++++''+#######################################+''++####
;;;:;;;;;:::;;:;;:::#####++++++####++++##++;;::::++:.....`..............,,,,,,::::::::;;;;;;'''''+''':,,,,,,,,,,,,,,,,,,,,,,,,,,;@@###'';;:';'+++##@@@@@@@@@@##@+'+++;:;;;,,:,..,,,,:;,,:';;;'';'+++++######@@@@@@@@@@@@@@##++';;';;::::,,,....,::::'+';'+;::;::::;;'''+##@@#################+#++++++++++++++++++++++++++++++#+####+':::;;::''###++++++++++++++++++++++#++++''''';;';::;;''';'+:,;++++'+++'''++++''''++''''++;;'+#######################################+''+#####
;;;;;;;:;;;:::::;;;;@##@#++'''''+++'+++###';:;::''+,`...................,,,,,,:::::::;;;;;;;''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,'@@####+';;:;;;'####@@@@@@@@@@#@#++';'';;;.,:,,,,,,,:;;;:;:::;;:;'''''++++++#@##@@##########+''+';;::,:,,.,,,,,.,.:;'''+++:;:::';;'+####@@###################++++++++++++++++++++++++++++++++++++###'::::::;'#++++++++++++++++++++++';'+;;''+''''''+':;'''';;'+;;++++++++++++'++';:'+++';'''+':'+#######################################+''+#####
;;;;;;;::;;;::::;:'@#######++'+++++'++'+#++'::::;':....................,,,,,,:::::::;;;;;;;''''+'+'+#:,,,,,,,,,,,,,,,,,,,,,,,,,,'@++##;',;:,'''+#@#@@@@@@@@@@@@##++++'';;::;,;::,::,:;'';;;'';;';'';';;'''+'+#+'+#++++++''''';;;;;:,:,,...,,:,,,,,:;;'+++':::::;:;'+++####@#@#################+++++++++++++++++++++++++++++++++++##+;:::::;'##+++++++++++++++++++++;'';;:;''';';;''''';::::;'++''+++++++++''';;'++''''+'''''''''+#+##############################+'+####+;'######
;;;;;;;;;;;;:;:;,:#############++#+++''++'++:,::::.`..................,,,,,,:::::::;;;;;;;;''''++'+#@#:,,,,,,,,,,,,,,,,,,,,,,,,,;###@#;+''''''#+##@@@@@@@@@@@@######@++';';;:';::;:,;;:;''+';';'';;;::::;;;;'+';;';;;'';;:::::,,,,,.,,..,,....,,,::::;'';';:,::,.,''++###@@###################+++++++++++++++++++++++++++++++++++##+';:,:;'+#+++++++++++++++++''+++';;'''''''''';''';;:;''+'+++++++++++++;:+',,,:;''''+'''';;;''+##+###########################+;,,'####';+######
;;;;;;;;;;;;;:;:,+@###@###########++''''':::,,,,,....................,,,,,,::::::::;;;;;;;''''++''#@@@#;,,,,,,,,,,,,,,,,,,,,,,,,'@@@#@###+++';+++#@@@@@@@@@@@@@@@@##@##++';;;';:;:::;;::'+';:';;;,:;,,:,::::;;;;;;:,:;;;;:,,,,,,.,,.,.........,,,:;::;:''':::,,,,.;'+@###@####################+#++++++++++++++++++++++++++++++++++###+;;;'###+++++++++++++++'''''++'''''''':'+'++''':;;'''';;+'+++++++++';;+';;;;;::;++''+;;;;'++##############################;..;#####''#######
;;;;;;;;;;;;;;::#@##############+';;;;:,.....,......................,,,,,,::::::::;;;;;;;''''+++'#@#@@@#:,,,,:,,,,,,,,,,,,,,,,,,+@####@#+:;;;;'++##@@@@@@@@@@@@@@#####+'+';;'';;::;'';'';''';':;;::;;::;;::;;:;;:::,,::;:::,,,,,,,,..,,....,,,:,::''+'+++;,:;,::::'+####@@##@###################+++++++++++++'''++++++++++++++++++###++'++#+##+++++++++++++''''''''''''''''::'+''+''';::;''++';'++++++++''++'++++++''+++'++'';;++##############################:,;+#####''#######
;;;;;;;;;;;;;::###@####@###+++';:::,...............................,,,,,,::::::::;;;;;;;;'''+++++#@#@@@@@;,,,,,,,,,,,,,,,,,,,,,:+##@#++'';;;;''++#@@@@@@@@@@@@@#@##@@@#++++'+++';;;'''++';'+'+;;';:;;::;;:,;';;;:::,,,,,.,,,,,,:,...`...`.....,,::;;++#'++;::::,:;'#####@##@@###################+++++++++++++'++++++++++++++++++++####++++++#+++++++++++++''''''''';'+++++++;:;;;;''+'::'+''+'+++''''+++++++++++++++++++'++++''+##+######++++##################++#######'+#######
;;;;;;;;;;;;;;#@########+++''';,..................................,,,,,,,:::::::;;;;;;;;'''++++'###@@@@@@@;,,,,,,,,,,,,,,,,,,,,:'+#@@###;,:;:+';+#@@@@@@@@@@@@@##@@#@########++#+''''+''#'++'++;;;'';::;::,:::,:::,.,,...,,,,.`..`````````..``,.,:,:;++;'';,:::,,'+@@######@#####################++++++++++++++++++++++++++++++++++###+++###+++++++++++++'''''';;;;'+++++++++'::'''+'+;,;++''++++';'++++++++'+++++++++++'+++++'#++++####+'++++######+###################+########
;;;;;;;;;;;::#@#@######+'''''',..................................,,,,,,,::::::;;;;;;;;;''''+++''###@@@@@@@@;,,,,,,,,,,,,,,,,,,,:+#@#@@#+:.,;;';;+###@@@@@@@@@@@@#@@@@##@#++@##+#++++'#''#++''++';:''::::,::;;;::;:,,,,.,,....``````````````..`,..:::::+'';;::,:;;'+##@#####@#####################+++++++++++++'''''+++++++++++++++++####++#+++++++++++'+''''''';;''++';;;;;;;';;'+''''':;++';+++++'++++++++;;'++++++++++++++++++++####+++'+########':+#################++########
;;;;;;;;;;;:#@@########++'''';,..................................,,,,,,:::::::;;;;;;;;''''++++;;;+######@@@@',,,,,,,,,,,,,,,,,,:#@@###'::,;;;:;'++#@#@@@@@@@@@@@@@#@@@@@###+#@##++##+####+#+++'++;';;:;';;;'''';;::;,,,,,```.``````.````````.....:;';,'#;;';;,:;''+'+#@######@###################+++++++++++++++'''''+++++++++++++++++##++++++++++++++'''''''''''''+':;''';:;+''+++';'+;'++''++++++'+++++++++++';''+++++++++++++#+###+'''+#########+;###################+########
;;;;;;;;;;:+@###@#####++'''';:,.................................,,,,,,:::::::;;;;;;;;''''++++;;;;;'######@@@@:,,,,,,,,,,,,,,,,,:+##@#';;;.;';;+''+@@@@@@@@@@#@@@@@@@@@##@@@+#@@###@##@#@#####+'##+++;;'+;+;;'';:'::;::,,,..`..````.````````````.,:;''''';;;,,::,,;++####@@##@####################+++++++++++++''''''''''++++++++++'''''++++++++++++++++'''''''''''+++++++';''';'''+;:;+';++''+;:;++++++++++++++';''+++++++++++'+#+##+''++#############+###++###################+#
;;;;;;;;;;+@##@#######+';';;;,.................................,,,,,,:::::::;;;;;;;;;'''++++;:;;;;;;'###@@@@@+,,,,,,,,,,,,,,,,,;#@#++##+';:''''''+@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@##@###+#@###+###+++''+;;+';'+;,;;:::;:::,,,.```.`.````` `````.,.,::;'+''::.:,,,:''#########@#####################++++++++++''''''''''''++++++++++''''++'+#+++++++++++''''''''''''++++++++;'''+++++;;:;';'++++',:'+++++++++++++++++++++++'++++'++##++'+###########+##+''+'''##+''##############+#
;;;;;;;;;'@@##########'';';;,..........`..`...................,,,,,,:::::::;;;;;;;;;'''''++':;;;;;;;;+##@@@@@@;,,,,,,,,,,,,,,,,'#@@++##+'+;'''''+##@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@##@########+####++++';''';'+'+;'''';;;;:,,,..``......`````.,,:;;;::'#++#';::;:;;++###############################++++++++++'''''''''''''+++++++++'''''''+#+++++++++++''''''+++'++++++++++;'++++++++++';;'+++++''+++++++++++''+++++++++++'+++++++##'+#############+'+'''''''+#;,:+############+##
;;;;;;;;;@@#@########+#+';;;,.........``..`..................,,,,,,:::::::;;;;;;;;;''''''+'::;;;;;;;;;+####@@@#:,,,,,,,,,,,,,,,+##@##++':;;'''+'+##@@@@@@@@@@@@#@@##@@@@@@@#@@@#@@@@@@#@##@##@##@#+##;;+';;;'++++++#+;'+:;:,,,,.......`..`.,:.,;';,;'#+'+';;:;:;;'+##########@####################++++++++++'''''''''''''''+++++''''';'++##++++++++++++++++++++++++++++++;'''+++;;++++'''+++++++++++++++++++''''++++++++++++''+###+'+#############+'''''''+';#',:+##########+###+
;;;;;;;:#@@@#@@##########';;:,........``.``.................,,,,,,:::::::;;;;;;;;;''''''+'::::;;;;;;;;;'###@@@@',,,,,,,,,,,,,,,+@####++',::;;+++##@@@@@@##@@@@@@@@##@@@#@@@@@@@@@@@@@@@@#@@@@#@+###@#'+#'+'''#+++#+++''+;+';:::,,,.```.`````..,:,,,;;'''';:::,,:;'++#####@########################++++++++++'''''''''''''''+++++'''';;'++++#######++++++++++++++++++++++''+''++':;++''+++++++++++++':'+++++++++++++++++++'+++++##++++############'''''''+##':+#''##+++#########+#
;;;;;;;#@@#@#@##########+'';;,..........``.................,,,,,,:::::::;;;;;;;;;''''''+':,:::;;;;;;;;;;'##@@@@#:,,,,:,,,,,,,,,+##@#@##+''':'###@@@#@@#@##@@@@@@@@@@@@@@@@@@@@@@@@@@##@#@@@@@#@'++++##+##+#+##''+++++''+';';;:::,,.,`..````...::,,:;;;;++;;:'''+######+###########++##############++++++++++++'''''''''''''++++++''''+#++'+#####+++++++++++++++++++++++';''''++''+++''++++++++++++++'+''+++++++++++++++++++++++##+++###########+'''''''#####+#######+####++#####+
;;;;;;;@@#@#@########+''';'+';,..........................,,,,,,,:::::::;;;;;;;;''''''++';,,:,::;;;;;;;';;##@#@@@',,,,,,,,,,,,,:+##@##@#+#'+'+#####@@@@@@##@@@@#@@@@@@@#@@@@@@@@@@@@@@#####@##@#####+#+'++''+##+++++##+'+';;:;::,,,,,,:,,....``.:::;;;++;'+:'@@@@@@#@@##@##+######+;;'#############++++++++++++''''''''''''+++++++''+####++#++++++++++'''''''''''''''''++'+''++''++'''+++++;'+''+++++++++++++++++++'+++++++++++++#+++#+';;++###+'''''''+++#+++########++++''+++#+;