@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@##8#8#8@8#8@@#8#@@8#@###@8#8@@####@@@@@@@@@@@@@@@@#@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@&&&&&&&8&&&@8o&o&8&o&888&&o8&&o&&&8&&&8@@@@@@@@@@@@@@@@@@#@@@@@@@#&##@##@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@88@@@@@@@@@@@@@@@@@@@#88#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@#@@@#8@@#88#88@@@@@@@@@@@@@@@@@@@
@@@@@@#8888&8@@@@@@@@@@@@@@@8&&&&&8@@@@8888#@@@@@@@@@@@@@@@@@@@@@@@@@@##&8##&&888&&###@@@@@@@@@@@@@@
@@@@@@@8o88&o#@@@#o&&8#88#@@@#&8#8&###8&888o####@@@@@@@@@@@#8&&oo:::*..:o&8&&&88888##888@@@@@@@@@@@@
@@@@@@@8o&&&:&@#@:o8oo&&*&@##*&888o*#*o#88&&&&##@@@@@@@@@@8&&oo:**...... .......*..&@#&o#@@@@@@@@@@@
@@@@@@@#88888@8&&88&&8@&&@#8&&&8#@8&&o&oo&###@@@@@@@@#@8&&oo::*..............**..@&&#@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@#############&&8&o8###@@@@@@@@@8&&oooo:*..............***:#88#@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@##888##########################@@@@@@@@###@@@@@@#8o*....**.******&8&#@@@@@@@@@@@@@
@@@@@@@@@@@@@@#@@&oo:::o8#####################88#@@@#@@##@@@@@@@@@@#8o:.*o8@@@@@@8*&#@@@@@@@@@@@@@@@
@@@@@@@@@@@@@##@&&888o88&####################88#8@@@@@8&o::o&&&&&o&8&:. *&##@@#@@@&8@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@##&o&oooo&&o#######################@@@@@@8&o:.....**::::*. *::::oo&o:*#@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@#8&&&888&8#######################@@@@@@8&&o:*.....:oo:*. .*......*.o@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@#o**&88888&.o#####################88@@@##88&&o:*...*8&o&o*.:::...*:oo#@@@@@@@@@@@@@@@@@
@@@@@@@@&:.. .*88&*. ..*o8###########8o:&8###8888&&oo::*::&8@@@@@#o**::ooo#@@@@@@@@@@@@@@@@@@
@@@@@@#. &######8&:.*:8@@###88888&&o&&8@@@#8&&&#@#ooooo&@@@@@@@@@@@@@@@@@@@@
@@@@@@o .8##8&o:***&o#@@@#88888888&&ooo&&&o&&88##8&&&#@@@@@@@@@@@@@@@@@@@@@
@@@@@# *88&&ooo:*oo@@@@@#8888888&&&ooo&88888&&88&oo&&&888888#@@@@@@@@@@@@
@@@@@o ..*::oooo:ooooooooo::* *88&oooo:oo@@@@@@@@##88888&&&&&&ooo&888&:****::o:::::o8@@@@@@@@@@
@@@@@. .::::::oooooo&&888888#@8&o:*.:8&&ooooo&&@@@@####@@@###88##888@#&o&&8oooooooo::::ooo8@@@@@@@@@
@@@@#:***o&88888&&o:::***:o8888#88&&888&&oo::oo*&@@@#########@@@@@@@888&o&8ooo:::::::oooo&&&#@@@@@@@
@@@@@@@@8.o:. ##@8#8888&&ooo:o&:.:8@@@@####@@@@@@@@@&&&888&o:o&&oooooooo&&88#@@@@@@
@@@@@@@@* *o#####88888&&ooo8&:*.:&#@@#@@@@@@#8&ooooooo&&88&&&8&&&&&&&&8888#@@@@@
@@@@@@@@. o######888888&&o&&o::8o*o88&o:. *oo::oooo&&&&&&&&&8888888888####@@@@
@@@@@@@# ... :########888888&&8&ooooo:.........***:o&&&&8888888888###########@@@@@
@@@@@@@: .*..*8##########888888&&oooooooo:::::::oooo&888888##8888####@@@@@@@@@@@@
@@@@@@o ..**..8###########888888888&&&&&&&&&&&&&&&&88888###########@@@@@@@@@@@@@
@@@@@& .. .....o###############8888888888888888888888########@@##&o&8#&#@@@@@@@@@
@@@@8 . .**..o##########################################@@@@8oo&8@#8#@@@@@@@@@
@@@@&.............. .. .:*..*8##########################@@#&8####@@@@@#@@@@@8&8##@@@@@#@@@@@@@
@@@@@&o*..****::::o.:o&::*:&&o::&8@@@##@@@8&#@@@#############@@@&o&@@@@@@@@###@@@@#&8@@@@@###@@@#@@@
@@@@@@@o.......*.**..*o...:oo#@@@@@@@8@@@#oo#@@@@@#@@@@@@#8##@#8&o8#@@@@#@@#####o::oo&88#8#8##8##@@@
@@@@@@@:........***. .:...::&#@@@@#@##@@88&8@@@@@@@@@@@@@88&8**.*.*.*o@@@###8#8&&8o**oo&&8@@@#8#@@@@
@@@@@@@o.......***:. .: ..*o888@@#&888#8&o&8@@@@@#8@@@@&@888@o.o**..o&o8@##8888#@@8o:o&88#@#@##@@@@@
@@@@@@@o ...*...** .: .*o##8@@8&8#@#&8#&&8#@@@@#8@#&*8&&&@@&oo&&88888@##8&&8@@8#&ooo&8#@@@@@@@@@@
@@@@@@#. ... ... * *#@@@@@@@@88&:@#888@8@@@@@@@#8@&&&&&oo&&&oo@@@@#88&&8@@8#&*.:o&@@@@@@@@#@@
@@@@@@#. ...... . .* .&@@@@##8#o:&#@@8X&&8o:o8&@@&o&##8*8888o8@@@#@##@@@@@@@8oo8#@@@@@@###@@
@@@@@@@.......... **:...o#@@@@8ooo:*oo@@@@@@@@@&o:&&o8@o&8&88#@@@@8o@@@@@@@@@@@@@#88888@@@@@@@##@@
@@@@@@@o....*.. *:*o..*&@@@@#8&&8&**o#@@@@@@@@#o*#8&88&##&&8#@@@@8#@@@@@@@@@@@@@@88888@@@@#8#####
@@@@@@@#*...... *::*o***&@@@@#&8#8&o8&#@@@@@@@@@8o8##@@@@@@@@@@@@#8@@@@@@@@@@@@@@@@#####@@###@####
@@@@@@@&.... *o::*&::*&@@@@@88@#8&8@#888@@@@@@@@#8#@@@@@@@@@@@##@@@@@@@@@@@@@@@@@#####@@##@@@###
@@@@@@:... *oo:::o::*o@@@@@@@@#8#####@#@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@##@@@@@@@@####
@@@@@@&*. .:oooo:&::*.:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@#@@@@@@@@@888#####
@@@@@@& *:oo&&8&::&***:&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######888#####################88888888
@@@@@@@8&8#@@@@@@@@@@@8#8###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########8#8####################888888888
@@@@888&8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############888######8888##88888###888888888
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######################8888888888888888888888