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