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