......................................................................................................................................................
..................................................................,,,,,,,,............................................................................
............................................................,:;+*??%%%%%%%%?????*+;:,.................................................................
........................................................,:*?%%%SSSSSSSS#############S%%?*:,,..........................................................
....................................................,,;*%SSSS%%SSSSSSSSSSS#######SSS######S?+;,.......................................................
.................................................,:+%SSSSS%%SSSSS#################SS#######@@@S%*:....................................................
...............................................,+%%SSSS%%%%%SSSS##################################S+,.................................................
.............................................,+%SSS%%%SSS%%%%%SS##################################@@S*,...............................................
............................................+%S%SS%?%%%%?**??%SS###############@@####@@@@@@@#######@@@?:,.............................................
..........................................,*SS%%SS%?*+;;;++++*?%%%%%%%%%%SSSSSSS#S############@@@###@@@#?:............................................
.........................................,?S%SSSS?;:,..,,,,,,:;;;;;;;+;;;;++++++**????%??*???%SS#####@@@@S+...........................................
........................................,%S%%%S%*,.............,,,,,,,,,::::::::::;;;++;;;;;++***????S#@@@#,..........................................
........................................:S%%%%?;,...............,,,,,,,,,,,,,:::::::;;::;;;;;;+++++++*%S@@@S,.........................................
........................................+%??%*;.................,,,,,,,,,,,,,,,::,:::::::;;;;;;;;++++++?S@@@;.........................................
........................................+%??*;,...................,,,,,,,,,,,,,::::::::::::;;;;;;;;+++++*S@S,.........................................
........................................+??*;,....................,,,,,,,,,,,,,::,::::::::;::;;;;;;;+++++*S@?,........................................
........................................+**+,.....................,,,,,,,,,,,,::,,::::::::::;;;;;;;;++++++%#@+........................................
.......................................,**+:,......................,,,,,,,,,:::::,,,:::::::;;;;;;;;;++++++*%#S,.......................................
.......................................:+;;:,,......................,,,,,,,,::::::,::::::::;;;;;;;;;++++++*%S#;.......................................
......................................,;::::,,,.............,,,,..,...,,,,,,:::::::::::::::;;;;;;;;;;+++++*?S#+.......................................
......................................,;::::,,............,,,,,,,,,...,,,,,,,:::,,,:::::::;;;;;;;;;;;;++++*?S#:.......................................
......................................,:,::,,.........,,::;;;;;;;;:;::::,,,,,,:::,,,:::::;;;;;;;++++++++*+**%#*,......................................
......................................::,:::,........,:::;;;;;++**??**+++;;::::::::::;;;+***??%%%%%%%?******?S%.......................................
......................................:,,,,:,.......,:::,,,,,,,,,::;;+;;;;;;::::::;;++**?%%%%??*++*?%%%%?***+%%,......................................
.....................................,;;,,::.......,,,::,,::;+*****++;;;;;::,,,::;;++*+++;;;;::;;;;+***???**+?#?::,...................................
..................................,:,,,:,,,,.......,::::;*?%??S%%#%+*?*++;;:,,,,:;;+**++**+%%%SSSSS%%??**?**+*S%*?*,..................................
.................................,:;:,,,,:,,........,,,::::,::;++*++***++;;:,,,,:;+?%**??*;+???%??%SS%??******S%???:..................................
.................................,;:,.,,,,,..............,,,,:::;;;+++;;;;;:,,,,:;+*??*+++;;;;;;+++*****+++++*%??**;,.................................
................................,,:,..,,:,,............,,,,,::::::::::;;:::,,.,,::;+*?*+;;;;;;;;;;+++++++++++*??***+,.................................
.................................,:,,,:;*;,............,,,::::::::::::::,,,...,,::;++***++;;;;;;;:;;;;;;+++++**?***;,.................................
.................................,:.,::;+:...............,,,:::::::,,,,,,......,::;+++++++;;;;;;;;;;;;;;;+++***?*+*+,.................................
.................................,,.,::;+:,,..............,,,,,::,,,,,,,,,,.....,:;++***+;::::;;:;;;;;;;+++****??+*+,.................................
..................................,,.,:;;:,,..............,,,,,,,,,::;;:,.......,,;++*****+:,::::::::;;;;++****?%**;..................................
...................................,,,,,::,,,..............,,,,,:::;;++,.........,:;+++++*?*;:,,::::::;;;++****%?**,..................................
...................................,,,..,,,,,..............,,,,::;;++;;,,,,,,....,:;+**++***+;;:::::::;;++****?%?**,..................................
........................................,,,,:,.........,,,,,,,,:;++;:,:::;+++;:,,:;+?%%???*++;;;::::;;;;++***??S?*+,..................................
........................................,,,,,,,.......,,,,,,:::;++;:,:::;+*??**+++?%S###S%?+;;;;;;::;;;;+***??SS***,..................................
.......................................,,,,,,,,,,,,..,,,,,,::;+*+;::+++*??SS%SSS%?S###@@##S%?+++;;;;;;;++***?%S%***,..................................
......................................,,,::,,,,,,,,,,,,,,,::;++++***???%?%S#####S??SS#@@@####SS%?+;;;;++***?%S#?++,...................................
..........................................,::,,::::,,::,::::;+??%%SS%%?***?%%***++;++?%SSS###@@##?+;;;+*??%%SS?.......................................
...........................................,::,,,:;;::;:;;;;;*%SS##S%*++;;;::::;;;;;++++*?%%SS#@##%*+++?%SSSSS;.......................................
...........................................,::;:::;;;:;;;++;;*S#S%?*??*?+*+::,:::,,:++*?%S%%**%S#SS?***?%SSS#%,.......................................
............................................,;;;;;++*++**;::+*?#?;::,::;;;+++***+***??%%%??*++*?##%*+?%%SSS##:........................................
.............................................,;+++++**+**+*++*%%*;,,,,..,,,:::;;;;;+*******++;+*SS????SSSS##?.........................................
..............................................:*?*????*?**???%S%?;,,,,,,,:::::;;;;;+++++***++++?SS%%%SSS##@S,.........................................
..............................................,:?%%%%%%%?*??%SS%??;:,,,,,;;+*?%%%SS????*+++++*?%#SSSS#SS#@#:..........................................
..............................................,,:?SS%?%SS%%%SSSS%?*+:,,,,,:;*?%SSS%?**++++++?%S#########@#;...........................................
.............................................,;;.,+SS%%%SSSSSS##S%%*+;:,:::::;+*?*??**++++*?%S###@@###@@%,............................................
..........................................,.,+??...;S#SSSSS###S##S%?*;;;;:,:;:;;++**?*****?%SS###@##@@@@;.............................................
.........................................:;;+*%#,..,:?S####SS#####S%?*++*++;;+*?+**?%%?%SSSS###@#@@@@@@@@?,...........................................
........................................,;+**?S@:..,,,+%S##########SS%%%%??**?SS%%%%SSSS######@@@@@#@@@@@@S;..........................................
........................................;****%#@:...,,,:*SS########S###SSSS%SSSS#SS#######S##@@@@#S%@@@@@@@@*.........................................
.....................................,:;*????%##;...,,,,:+?%SS################@@@###@@@@@@@#@@@#S%??@@@@@@@@@?:,......................................
..............................,,::;++***?%%%%S##+....,,:::;;*?%SSSSS%SS##@##@@@@@@@@@@@@@@@@@#S%????S#@@@@@@@@#S%?*+;:,,..............................
........................,,:;+*?%SS%%%????%%%%S##*......,,:;;;++*?%%%%%%S#######@@##@@@@##@##SS??*???S##@@@@@@@##@#####SS%?+;:,,.......................
.................,,::;+*?%%SSS###%%%S%???%%%%S##?.......,,:;;;;;++**???%%SSSSSSSSS########SS%?****?%SSS@@@@#@@###@@##########S%?*+::,.................
.........,.,,:;++**?%%SSS#######SSSSS%%?%%SSS##S%:...,,,,,,,::;;;++++*****?%%%S%SSSSSSSSSS%?*****??SSSS@@@@#@@@##@@@@@@@###########S%?*+;:,,..........
...,,,:;+++*??%%%%%SS##########SS#SSS%%%%%SSSS#S%*,...,,,,,,,,:::;;+++++++**??????%%%%%%%?**+****??%%%S@@@@#@@@@##@@@@@@@@@@@#############SS?*;;:,....
++***?%%%%%%SSSSSSS############S##SSSS%%%%SSSS##?*;,,.,,,,:,,,,,,:::;++++******????%%%??**++*****??%?%#@@@@##@@@@@@@@@@@@@@@@@######@@@##@@@@@###S%%*+
SSSSSSSSSSSSS#################S###SSSS%%%%SSS###%*+;,,,,,,:::::,,,,,,::;;;+++***??***+++++++*****??*?S@@@@@##@@@@@@@@@@@@@@@@@@####@#@###########@@@@#
#@@##########################S####SSSSS%%SSSSS###?;;:::,,,,,:::::::,,,,,,,,::;;;;;;+++++++**???**+++?@@@@@@##@@@@@@@@@@@@@@@@##@########@#############
@@@@########################S####SSSSSSSSSSSSS##@@%+:,,::::::::::::::::::::::;;;+++++++++*??**+;;++?#@@@@@@@##@@@@@@@@@@@@@@@@@@#@#####@#@############
#@@@#######################S#####SSSSSSS%SSSS###@@@@S+:,,,::::::::::;;;;;;;;+++++++++++**?*+;;;;++?@@@@@@@@@##@@@@@@@@@@@@@@@@@#@@####################
@@@@@@@#################@#S#@@###SSSSSSSSSSSS###@@@@@@#?+,,,,,,,:::;;;;;++++++++++++++++++;;;;++*S@@@@@@@@@###@@@@@@@@@@@@@@@@@@@############@########
#@@@@@########@########@#S#@@####SSSSSSSSSSSS###@@@@@@@@@S?;:,,,,,,,:::::::;;;;::::::::;;;;+++*%#@@@@@@@@@@####@@@@@@@@@@@@@@@@@@@####################
######################@#S#@@####SSSSSSSSS%SS#####@@@@@@@@@@@#?+;:,,,,,,,,,,::::,,,,,:::::;+*%S#@@@@@@@@@@@@@#@##@@@@@@@@@@@@@@@##@@@##########@#######
#####################@SS#@@######SSSSSS%SSSSS####@@@@@@@@@@@@@@@#S%*++;:::::::::::::;;+*?S#@@@@@@@@@@@@@@@@@##@@@@@@@@@###@@@@@@###@@#########@#######
######################S#########SSSSSSSS#SSS######@@@@@@@@@@@@@@@@@@@@@##SSS%%%%%%SS#@@@@@@@@@@@@@@@@@@@@@@@###@@@@@#####@@@@@@@####@@################
###############@######@@#########SSSSS#SSS###SSS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@#@@@@@#####@@@##@@@@################
####@@@################@@@###@##SSSSSSSSS#SSSSSS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@@@@#@@######@@@@@@@#################
####@@@################@@@@@@##SS##S#SS######SSSS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@##@#####@@@@####################
######################@@@@@@@@###SSS#######SSSSSS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@@#@############@@@##################
######################@@@@###################SSSSS#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@@#####@###########@@################
#####################@@@##################SSSSSSSS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S###@@###########@#######################
##########################@#@@###########SSSSSSSSS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S####@############@@########@############