..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
..........................................................................................................................................................................................................................................................
................................................................................................................................................................................................,.....................................,...................
...............................................................................................................................................................................................,,....................,................,.,.................
......................................................................................................................................................................................,,..,,...,....,....,.,..,..,...,...........,..,,....................
.........................................................................................................................................................................,.......,,.,,,,,.,,,,,,..,,,,,,,,,,,.,.,.,.,,,...,,..,..,,..,....,.,.............
.......................................................................................................................................................................,.,.,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,.,,,,,,,,.,,,,,,,,,.,,..........
.................................................................................................................,,..............................................,,..,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,.,..,,...,.,...,....
.........................................................................................................,,....,,,,,..........................................,.,,..,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..........
......................................................................................................,,,,,,:::,,,.,,.......................................,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,...,,..,..
....................................................................................................,,::::::::++::,,,...................................,.,..,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,,...
...............................................................................................,,,,::+++++++:::+++:,,::,,,,.............................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,..
.............................................................................................,,,::++%%%%%%%%++++%%++:+++++:,,,,,......,,...............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.
...........................................................................................,,,::+%%%%%%%%%%%%%%%%%%%%%%%%%++:,,,,...,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,
..........................................................................................,,:+%%%%%%%%%%%%%%%%###%%%%%%%%%%%%+::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.....................................................................................,,,,,:+%#####%%%%%%##%%%%######%%%%%%%%%%%%%%%++:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
....................................................................................,,,,,:+%%########%%%#####%########%%%%%%%#%%%%%%%++:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................................................,,,,,::+%%%%####################@#######%%%#####%%#%%++:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............................................................................,,,:++++%%%#######%############@##@@@@@###############%%%++:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
............................................................................,,,:++%%%%%%#####################@@@@#@@@@@@@@@####@@@#####%%++::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................................................................,,,:++%%%%%######@@##########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####%%+++::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................................................................,,::+%%%%%%#%######@@##########@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@####%%%%+++:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.......................................................,,...............,,:++%%%%%%#########@@@#######@#@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@#@######%%%++::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:,,:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...........................,..................,..,,,,,,,,,.,,....,,..,,,,:+++%%%%#%#####@@##@@@@@#########@@@#####@@#@@@@@#@@@@@@@@@@@@@@@######%+++::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..........................,,,,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+++%%#%%#####@##@@@@@@@@@@@@#########################@@@@@@@@@@@@@@####%%%+:::::,,,,,,,,,,,,,,,:,,,,,,:,,,,:,,,,,,,:,,,:::,::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.........................,,,,,:,,,,.....,,.,,,,,,,,,,,,,,,,,,,,,,,,.,,,:+%%%%%######@@@@@#@@@@@@@@@####%%%%%%%%%%%%%%%%%%#%######@@@@@@@@@@@@@###%%%+::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::,,,,,:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............,,,,.....,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:++%%%########@@@@@@#@@########%%%+++%%+++++++++%%%%%%%%%%%####@@@@@@@@@@###%%++::::::,,,,:,:::,:,,:,:,,,:,::,,,:,,,::::,,,:,:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............,,,,,,,..,,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+%%#%###@@@@@#@@@@@@@#####%%%%++++++++++++++++++++++++++++%%%###@@@@@@@@@##%%%++::::::,,,,,,:,:,:,,,::,::,::,::,::::::::::::,:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,
.............,,,,:::,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+%#%#####@@@@@@@@@@@##%%%%++++++:::::::::::+:++++++++++++++++%%%##@@@@@@####%%%+::::::::,,::,:::,:::::::::::::,::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,
.............,,,:::::,..,,,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:++%########@@@@@@@###%%%++++::::::::::::::::::::+++++++++:++++++%%%#@@@@@@####%%%+::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,
............,,,,:::::,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+%%###@@@#@@@@@@##%%+++:::::::::::::::::::::::::::::+::::::++++++%%##@@@@@@###%%++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,
............,,,,::::::,,,,,,,,::,,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,:+%%##@@@@@@@@###%%++::::::::::,:::::::::::::::::::::::::::::::+++++%%##@@@@@##%%%++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:::::::,,,,,,,,,,,,,,,,,,,,,,,,,
............,,,,:::::,,,,,,,,:::,,,,,,,,::::::,,,,,,,,,,,,,,,,,,,,,,,::+%%####@@@@@@#%%+:::::::::::,,,,,,:::,,::::::::::::::::::::::::+++++%%##@@@@@##%%%++:::::::::::::::::::::::::::::::::::::::::::::::+:::::::::::::,:::::::::,,,,,,,,,,,,,,,,,,,,,,,,
............,,,,::::::,,,,,,,:::::,,,,,,:::::::,,,,,,,,,,,,,,,,,,,,,,:+%#####@@@@@##%++:::::,::::,:,,,,,,:,,,,,:::::::::::::::::::::::::+++++%##@@@@@###%%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::,,,,,,,,,,,,,,,,,,,,,,,
............,,,,:::::,,,,,,,,:::::,,,,,,::::::::,,,,,,,,,,,,,,,,,,,,,:+%#####@@@@##%++:::::,,,:,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::++++%%#@@@@@##%%++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,
............,,,,:::::,,,,,,,,::::::,,,,:::::::::,,,,,,,,,,,,,,,,,,,,,:%%#####@@###%+::::,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::++++%##@@@@##%%%+++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,
............,,,,:::::,,,,,,,::::::,,,,,,::::::::,,,:,,,,,,,,,,,,,,,,:+%#####@@###%+:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::+++++%##@@@@##%%+++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,
...........,,,,,:::::,,,,,,,::::::,,,,,::::::::::,:,,,,,,,,,,,,,,,,::%######@###%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::++:++%##@@@##%%%+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::::::,,,,,,,,,,,,,,,,,,,,,
..........,,,,,:::::,,,,,,,,::::::,,,,,,:::::::::::,,,:,,,,,,,,,,,,:+%####@@###%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::+:+++%#@@@@###%%+::::::::::::::::::::::::::::::::::::::::::::+::::::::+::::::::::++:::::,,,,,,,,,,,,,,,,,,,,,
..........,,,,::::::,,,,,,,,::::::,,,,,,:::::::::::::::,,,:,,,,,,,,:+#########%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::++++##@@@####%%:::::::::::::::::::::::::::::::::::::::::::::::::::::+:::::::::::+:::::,,,,,,,,,,,,,,,,,,,,,
..........,,,,,:::::,,,,,,,,::::::,,,,,,:::::::::::::::,::,:,,,,,,::%########%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::+++%##@@#####%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:::::,,,,,,,,,,,,,,,,,,,,
...........,,,,:::::,,,,,,,,::::::,,,,,:::::::::::::::::::,:,,,,,,:+%#######%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::+++%#@@######%+::::::::::::::::::::::::::::::::::::::::::+:::::::::::::,:,:,::++:::::,,,,,,,,,,,,,,,,,,,,
..........,,,,,:::::,,,,,,,,::::::,,,,,:::++:::::::::::::::::,:,,::+%######%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::++%##@@#####%+++:::::::::::::::::::::::::::+++::::::::::++::::::::::::,,,,,,:+++:::::,,,,:,,,,,,,,,,,,,,
..........,,,,,:::::,,,,,,,,::::::,,,,,:::+++:::::::::::::::::::,::+%%#####%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:::::::::::::::::::::::::::+++%########%++::::::::::::::::::::::::::::+++::::::::::++::::,:::::::,,,,,,::+++:::::,,,:,,,,,,,,,,,,,,
..........,,,,,:::::,,,,,,,,::::::,,,,,:::++++:::::::::::::::::::::+%%####%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::::::::::::::::::::::::::::++%###@#####%++::::+:::::::::::::::::::::+++++:::::::::+++:::,:::++::,,,,,:::++::::::,,,,:,,,,,,,,,,,,,
..........,,,,,::::,,,,,,,,,::+:::,,,,,::++++::::::::::::::::::::::+%%####%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::+++%########%++::::::::::::::::::+:::::::++++:::::::::::++:::,:::++:::,,,,,::++::::,,,,,,::,,,,,,,,,,,,
..........,,,,,::::,,,,,,,,,::+:::,,,,,:::+++:::::::::::::::::::::+%%%%##%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,:::::::::::::::::::::::::::::++%########%%+::::::::+++:::+:::::::+::::++++::::::::::++::::,::+++::,,,,,::++:::,,,,,,,,,,,,,,,,,,,,,
.........,,,,,:::::,,,,,,,,:::::::,,,,,:::::+:::::::::::::::::::::+%%%###%::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,::::::::::::::::::::::::::::++%%########%+:++::::+++:::+++:+::++:++++++++::::::::::++:::::::+++::,,,,,::+++:::,,,,,,,::::,,,,,,,,,
.........,,,,,:::::,,,,,,,,:::+:::,,,,,:::+++:::::::::::::::::::::%%%%#%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::++%#########%++++++++++++++++++:+++::+++++++::::::::::+++::::::+++:::::,:::+++::::,,::::::,:,,,,,,,,,
........,,,,,,:::::,,,,,,,,::+++:,,,,,,,::+++::::::::::::::::::::+%%%%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::++%#########%++++:++++++++++++++++++++++++++::::::::::+++::::::+%++::::::::+++:::,,,,:,,::::,,,,,,,,,
........,,,,,::::::,,,,,,,:::++::,,,,,,:::+++::::::::::::::::::::+%%%%%%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::++%%#########%+++++++++++++++++++++++++++++++:::::::::+++::::::+%%+::::::::+++:::,,,,:::,,:::,,:,,,,,
.......,,,,,,::::::,,,,,,,:::+++:,,,,,,::++++::::::::::::::::::::+%%%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::++%%#########%+++++++++++++++++++++++++++++++:::::::::++++:::::+%%+::::::::+++:::,,,,::,,:,::,:,,,,,,
......,,,,,,,::::::,,,,,,,,::++::,.,,,,::++++::::::::::::::::::::+%%%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::++%%##########+++++++++++++++++++++++++++++++:::::::::+%++:::::+%%++::::::::++::::::,,,,:::::,,:,,,,,
......,,,,,,,::::+:,,,,,,,,::++::,,,,,,::++++::::::::::::::::::::+%%%%%++:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::++%%##########%++++++++++++++++++++++++++++++:::::::::+%%+:::::++++:::::::::+++::::,,,,::::::,,::,,,,
......,,.,,,,,:::+:,,,,,,,,::++::,,,,,:::++++::::::::::::::::::::+%%%%%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::++%##########%+++++++++++++++++++++++++++++++::::::::+%++:::::::+::::::::::+++:::::::,::::::::,:,,,,
........,,,,,,:::+:,,,,,,,,::++:,,,,,,:::++++:::::::::::::::::::++%%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::+:::::::::::::::::::++%%#########%+++++++++++++++++++++++++++%++++:::::::+%+:::::::::::,:::::,::+:,,:,,,,,:,::::::::,:,,
.........,,,,,:::::,,,.,,,,::++:,,,,,,:::+++++::::::::::::::::::+%%%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::+++++++++++:::::::::::++%%##########%+++++++++++++++++++++++++++++++:::::::+++:::::::::,::,,,,,,:::,,,:,,:,,,::::::::,:::,
.........,,,,,::::,,,,,,,,,::++:,,,,,,::+++++:::::::::::::::::::+%%%%%++:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::++++++++++++%%+++++::::::::++%%##########%+++++++++++++++++++++++++++++++:::::::+++:::::::::,,,,:,,,,:,,,,:,:,,,,,,,,::::::,:::
...,.....,,,,,::+:,,,,,,,,,::++:,,,,,,::+++++:::::::::::::::::::+%%%%%++:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,:::::++++%%%%%%%%%%%%%%%+++::::::++%%##########%++++++++++++++++++++++++++%+++++:::::::::::::::::::::::::::::,,::::,,,,,,,,::::::,,,,
,...,.,..,,,,,::::,,,.,,,,::+++:,,,,,,::+++++:::::::::::::::::::+%%%%%++:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,::::::::+++++%%%%%%%%%%%%%%%%++++::::+++%%#########%++++++++++++++++++++++++++%+++:::::::::::::::::::::::::::::,,,:::::,,,,,,,,,:::::::::
....,,,.,,,,,,::::,,,,,,,,::++:,,,,,,,::+++++:::::::::::::::::::+%%%%%++:,,,,,,,,,,,,,,,::::::::::,,,,,,,,,,,,::::::::::+++++%%%%%%%%%%#%%%%%%%%%++:::+++%%#########%++++++++++++++++++++++++++%++++::::::::,::::::::::::::::::,,,:::::,,,,,,,,,,::::::::,
.....,,,,,,,,:::+:,,,,,,,,::++:,.,,,,,::+++++::::::::::::::::::+%%%%%%+::,,,,,,,,,,,:::++++++++:::::,,,,,,,,,,:::::::::+++++%%%%%%%%%%%%%%%+%%%+++++:::+++%#####@@###++++++++++++++++++++++++++%++++::::::::::::::::::::::::::,,,::::::,,,,,,,,,,,::::::::
,...,,,..,,,,:::+,,,,,,,,,:+++:...,,,,::++%++::::::::::::::::::+%#%%%%+::,,,,,,,,::::++++++++++++::::::::,,,,,,:::::::+++++++++++++++:::,,,,,,,,,,,,,,::++%#####@####%+++++++++++++++++++++++++%++++::::::::::::::::::::::::::,,:::::,,,,,,,,,,,,:::::::::
,..,,:...,,,,,:::,,,,,,,,,:+++,..,,,,,::++%++::::::::::::::::::+%%%%%%+::,,,,,,::++++%%%+++%%++++::::::::,,,,,,::::+++++++++++::::,,,,,,:::::::::::::,,,:+%#####@@###%+++++++++++++++++++++++++%++++:::::::::::::::::::::::::,,:::::,:,,,,,,,,,,,:::::::::
,.,,,,...,,:,:::::,,,,,,,,:+++,..,,,,,::++%+::::::::::::++::::++%%%%%%++:,,,,,:+++%%%%%%%+++++++++::::::::,,,,::::+++++++++::,,,::::::::::::::++++:::::,:+%#####@####%+++++++++++++++++++++++++%++++::::::::::::::::::::::::,,:::,,::,,,,,,,,,,,,,,:::::::
,...,:,,,,::::++++,,,,,,,,:+++,..,,,,,::+%%+::::::::::::::::+:++%%%%%%++:,,,,:+++++++%%+++++++++++::::::::,,,,::::++++++::,,::::::::::::::::::+++++++::::+%%####@@####+++++++++++++++++++++++++%%+++::::::::::::::::::::::,,,,::::,,:,,,,,,,,::,,,,,::::::
,..,,,,,,,,,::+%+:,,,,,,,:+++:,.,,,,,,:++%%+:::::::::::++:::+:++%%%%%%++:,,,::+%%++++:++++++++++++++:::::::,,,:::+++::,,,,:++::::::::::::::::::+++++++:++++%####@@####%++++++++++++++++++++++++%%+++:::::::::::::,::::::::,,::::,:,,,,,,,,,,,:,,,::,::::::
,..,,,,,,,,,::++,,,,,,,,,::+%:,.,,,,,::++%%+:::::+::+::+:++::+++%%%%%%+::,,,::++++::,,::::,:::::::::::::::::::::::,,,,,:++++::::::::::::::::::::++++++:++%%%%#########%++++++++++++++++++++++++%%++++::::::::::,:,::::::::,:::,,::::,,,,,,,,,,,,,,,:::::::
,..,,,,,,,,,,:::,,,,,,,,,,:++:,,,,,,,::++%%+:::::::+::+++:+:+++%%%%%%%+::,,,::+::,...........,,,,,,,,,,,,,.....,.,,.,,++++++:::++++::++++++::::::++++++++++%%%###@@###%++++++++++++++++++++++++%%+++::::::::::,,,,,:::::::::::::,,,,::,:,,,,,,,,,,,,,:::::
,,,,,,,,,,,,,,::,,,,,,,,,,::+:,,,,,,,::++%%+:::::::::++++:+++++%%%%%%%+::,,,,.......,,,,::::::::::::::,,... ..,,,,,,:+++++++++++++::++:++++++:::++++++++++%%%%##@#####%++++++++++++++++++++++%%%+++:::::::::::::::::::,,::::::::::,,:,,,,,,,,,,,,,,::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,::++%%+:::::::::++++++++++%#%%%%%+:,......,:,,,:,,,,::::::+::+:++::,.....::+::,,:+++++++++++++%%%%%+++++++:::+++++++++%##%#@@#####%++++++++++++++++++++++%%%%++:::::::::::::::::::,:,,::::::,,,,,,,,,,,,,,,,,,,,,::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::++%%::::+::::++++++++++++%%%%%%:.....,::::,,,,,,,,:::++++++++++::,.,,:::++++:,,+%%%%%%%++%%%######%%+++++::::+++++++%######@@###%+++++++++++++++++++++++%%%++:::::::::::::::,,,:,,,,,:::,,,,,,,,,,:,,,,,,,,,,,,::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::++%%::::::::+++++++++++++%%%%%+...,::::::,,,,,,,,:::+++++%%+++++:,,:::::::+++,,+%%%%%%%%%+%%%#####%%%%%+++::::++++++%##@##@@@@##%+++++++++++++++++++++++%%%++::::::::::::::::::::,,,,::,,,,,,,,,:,:,,,,,,,,,,,:::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+%%%::::::::+++++++++++++%%%%%:.,::+++:::,,,,,,::::++%%%%%%%%%++:,,:::::::+++:,+%%%%%%##%+%%%###%%%%%%#%+++:::++++++%##@@###@@##%+++++++++++++++++++++++%%%++:::::::::::::,,:::::::,,:,,,,,,,,:,::,,,,,,,,,,,,,::::
:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::+%%+::::::+++:++++++++++%##%#%:,::++++::,,,,::::++%#####%%%%%%%++,::+::::::+%+,:+%%%##%%%++%%%%%%++++%%%%++:::++:+++%##@@@####@##%++++++++++++++++++++++%%%+++:::::::::::,,:::,,:,,,:,,,,,,,,:,,,,,,,,,,,,,,,,,,:::
::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::++%%+::::::+:+:++++++++++%##%%%+:+:++++::,,,::::+%%%%###%%%%#%%%+:,:++:,,:::+++::+%%%%%%%++++++++++++++++++++:::::+++%###@@@@#####%%+++++++++++++++++++%+%%%+++:::::::::::,:,,,,,,,,,,,,,:,,,::::,,,,,,,,,,,,,,,,,::
:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::++%%+::::::::++++++++++++%##%%%+%++++++:,,,:+++%%%%%%####%%%%%%%+:,:+:,,,:::++%+++%%%%%%++++++++++:::++:++::::::::+++%####@@@@####%%++++++++++++++++++%++%%%%++++:::::::::::,,,,,,:,,,,,,,,,,:,:,,,,,,,,,,,,,,,,,,,:
:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::++%%+:::::::+:+++++++++++%###%%%%+++++:,,,:++%%+++++%%%%%++++++++:,+%:,,,::::++%++%%%%%%%%+++++++++++++++++::::::::++%%####@@@#####%+++++++++++++++++++++%%%%++++::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::
:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+++%%+:::::+++++++++++++++%##%%%%%+:+++:,,:+++++:::::+++++++++++++::++:,,,::::+++++++%%%%%%%+++++++++++++++:::::::::++%%####@@M@###%%+%%%+++++++++%+++++++%%%%+++::::::::::::::,,,,,,,,,,,,,,,,:,,,,,:,,,,,,,,,,,,:::
::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+++%%+::::::++++++++++++++%##%%%%%++++%:,,::::::::::::::++++++++++::::,,,::::::+++++++++%%%%+++++++++++::::::::::::::++%#####@M@@##%%++%%+++++%%++%++%+++++%%%+++:::::::::::::::,,,,,,,,,,,,,,,,,,,,:,:,,,,,,,,,,,,,:
:::,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,:::+++%%+::::::+:+++++++++++%%%%##%#%%++%+:,,:::::,,,::::::++++++++:::::,,,,::::::++++++++++++++++++++++++:+::::::::::::++%#####@@@@###%%+++%++++%%+++++%++++%%%%+++:::::::::::,,,,:,,,,,:,,,,,,,,,,,,,,,:,,,,,,,,,,,,,:
::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,:::++%%%+::::::+++++++++++++%%%%#####%++%%:,,,,,,,::::::+++++++++:::::::,,,,:::::::+++++++++++++++++++++++::::::::::+:::++%%#####@@@@##%%+++%%%+%%+%%%+++%%%%+%%%+++:+:::::::,:,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,,
::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+++%%%+:::::++++++++++++++%%%%#####%++%+:,,,,,,,,:::++++++++::::::::::,,,,::::::::++++++++++++++++++++:::::::::::::+:::+%%######@@@@##%%+++++%++%++++%++%+++%%%+++++:::::::::,,,::,:::,,,,,,,,,,,,,::,,,,,,,,,,,,:,,,,
::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+++%%%::::::++++++++++++++%%%######%++++:,,,,,,,::::+++++::::::::::::,,,,,,::::::+++++++++++++++++:::::::::::::::::++::++%%######@@@#%%%%%+%%++%++++++%++%%++%%%++++::::::::::,,:,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,
:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+++%%%::::::+:++++++++++++%%#######%+:++,,,,,,,,,,,:::::::::::::::,:,,,,,,,,::::::+++++++++++++:+:+::::::::::::::::::::++%########@##%%%%++++%+++++++++%+%%++%%%+++:::::::::::,,,,:,,,,,:,,,,,,,,::::,,,,,,,,,,,,,,,,,
:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::++%%%::::::::++++++++++++%%##@#%%#%::::,..,,,,,,,,,:::::::::::::,,,,,,,,,,,:::::::++:::+++++:+++++:::::::::::::::::::::+%%##########%%++%+++++%%+%%+++++%++%%%%+++:::::::::::::,:,,,,,,,,:,,,,,:::::,,,,,,,,,,,,,,,,,
::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::++%%+:::::::+++++++++++++%%####%%#%:,,,,,,,,,,,,,,,::::::::::::,,,,,,,,,,,,:::::::::::++++::::+::+:::::::::::::::::::::++%########%#%%%++%+%+%++%++%++++%+%%%%%+++::::,,::::::::,,,:,:,:,:,,,,,,,,,::,:,,,,,,,,,,,,,,
::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::++%%+:::::::+++++++++++++%%##@#%%%%:,,,,,,,,,,,,,,,,::::::::,,,,,,,,,,,,,,,::::::::::+++++++:::::::::::::::::::::::::::++%######%%%%%%%+++%%%+%%%++++%%%%%%%%%%++:::::::,::::,:::,::::::::,:::,,,,,::,:,,,,,,,,,,,,,,
:::::,,,,,,,,,,,,,,.,,,,,,,,,,,,:::::++%%+:::::::+:+++++++++++%%#@@#%%%+:,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,:::::::::++++++++++:::::::::::::::::::::::+::+%%#####%%%%%%%%%++%%%+%%%%+%%%%%%%%%%%++::::::::::::,:::::::::::,,:::,,,,,,:,:,,,,,,,,,,,,,,
::::::,,,,,,,,,,,,,,,,,,,,,,,::::::::++%%:::::::+:++++++++++++%%#@@#%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::+++++++++::::::::::::::::::::::::+%%#%%##%%%%%%%%%%%%%%%%+%%+%%%%%%%%%%%++::::::::,::,,:,::::::,:,,,,,,,,,,,,,::,,,,,,,,,,,,,,
::::::,,,,,,,,,,,,,,.,,,,,,,:::::::+:+%%+::::::::+++++++++++++%%%##%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::+:+++++++++++::::::::::::::::::::::++%%%%%%%%%%%%%%%%%%%+%%%%%%%%%%%%%%%%%++::::::::::::::,,::::::,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,
::::::,,,,,,,,,,,,,,,,,,,,,,,::::::++++%+::::::+:++++++++++++++%%%%%++++,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,::::::::::++:+++++++++:::::::::::::::::::::::+%%%%%%%+%%%%%%%%%%%%+%%%%%+%%%%%%%%%++::::::::::::::,::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
::::::,,,,,,,,,,,,,,,,,,,,,,,,:::::++++%:::::::+++++++++++++++++++%%++++,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,::::::::::::::++++++++::::::::::::::::::::::+%%%%%%++%%%%%%%%%+%%+%%%+%%%%%%%++++++::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
::::::,,,,,,,,,,,,,,,,,,,,,,,,,::+:++++%:::::::+++++++++++++++++++++%++:,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,:::::::::::::::+++++++++:::::::::::::::::::::+%##%%%+++++%%%++++++++++++%+%+++++++::::::::::::,:,::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
::::::,,,,,,,,,,,,,,,,,,,,,,,,,:::++++%+:::+::::+++++++++++++++%+:++%%+:,,,,,,,,,,,,,,,,,,,,::::,,,,,,,,,,,,,,,,,::::::+::+:::::++++++++++::::::::::::::::::::+%%%%%%%%+++++++++++++++++++++++::::::::::::::::::,:::,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,
:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::+++%%%:::::::::++++++++++++++++++%%%+:,,,,,,,,,,,,,,,,,,,,:::::,,,,,,,,,,,,,,,,::::+++++++++++++++++++++::::::::::::::::::::+%%%%%%%%+++++++:::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
:::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::++%%%::::+::++++++++++++++++++++%%++:,,,,,,,,,,,,,,,,,,,::::::,,,,,,,,,,,,,,:::::+++++%##%%%++++++++++++:::::::::::::::::::+%%%%%%%%+++++::::::::::::::::::::::::::::::::,:::,,,,,,:::,,,,,,,,,,,,,::::,,,,,,,,,,,,,,,:
:::::::,,,,,,,,,,,,,,,,,,,,,,,,::::+++%%:::::::++++++++++++++++++++%%++:,,,,,,,,,,,,,,,,,,::::::::,,:++++:::,,:::::+++%%###%%%%%+++++++++++++:::::::::::::::::+%%%%%%%%+++++:::::::::::::::::::::::::::::::,,,,:,,,,,,:::,,,,,,,,,,,,,,::::,,,,,:,,,,,::::
::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::+++%%:::::::++++++++++++++++++++%%++:,,,,,,,,,,,,,,,,,:::+:::::::+++++++:::::::+++%%%%%%%%%%++++++++++++++:::::::::::::::::+%%%+%%%%+++++::::::::::::::::::::::::::::,,:,,,,,,,,,,,,:,,,,,,,,,,:,,,,,,:::,,,,,,,:::::::
::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::+++%%:::::+++++:+++++++++++++++++%++:,,,,,,,,.,,,,,,,:::++:::::,:::::::::::::++++++%%%%%%++++++++++++++++++:::::::::::::::++%%%++%%+++++++::::::::::::::::::::::::,:,,:,,,,,,,,,,:,,::,,,,,,:,,,,,,,,,,::,,::::::::::::
::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::+++%%::::::++++++++++++++++++++++%++:,,,,,,,,,,,,,,,,::+++::,::,,,:::::::::::+++++++%%%+++++++++++++++++++++:::::::::++:::++%%+++%%+++++++:::::::::::::::::::::::,::::::::::,,,,,,,,,::::,,,,,,,,,,,,:,:,:,,::::,::::,,
::::::,,,,,,,,,,,,,,,,,,,,,,::::::::++%%::::++++++++::::::::::::::++%++:,,,,,,,,,,,,,,,:::++:::::,,,,,::::::::::++++++++%%+++%+++++++++++++++++++::::::+++:++++%%%++%+++++++++:::::::::::::::::::::::::::::::::,::,:,::,:,,:,,,,,,:::::::,::::::::::,,,,,,
:::::,,,,,,,,,,,,,,,,,,,,,,::::::::::::+::::::::::::::::::::::::::+++++:,,,,,,,,,,,,,,,:::++::::,,,,,,::::::::::++++++++%+++++++++++++++++++++++++::::+++++++++%%%++++++++++++++++++++++:::::::::::::::::::::::::,::::,:,:::::,,,:,,,:::,::,,,:,:,:,,,,,,,
::::,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::,::,,,,,,,,::::::::::+++++,,,,,,,,,,,,,,:::++:::::,,,,:::::::::::::::+++++++++++++++++++++++++++++++++:::++++++++%%%++%%%%%++++++++++++++++++:::::::::::::::::::::::::::::,::::::::::::::::::::,:,,:,,,,,,,,
,,,:,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::,:,,,,,,,,,,,,,:::::::::::++++:,,,,,,,,,,,,,::+++:::::,,,,:::::::::::::::++++++++++++++++++++++++++++++++++:+:+++++++%%+++%%%%%%%%%%+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::,,,,,,,,,,,,,,,,:::::::::::++++:,,,,,,,,,,,,,::++:::::,::,,::::::::::::::::++++++++++++++++++++++++++++++++:+++++++++++%++%%%%%%%%%%%%%%%%%%%++++++++++::::::::::::::::::::::::,::::::::::::::::::::::,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,:,,,,,,,,,,,,,,,:::::::::::++++,,,,,,,,,,,,,:+++:::::::::::::::::::::::::::++++++++++++++++++++++++++++++++:++++++++++%++%%%#####%%%%%%#%%%%%%%%%%%+++++++:::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,:::,:,,,,,,,,,,,,,,,,::::::::::++++++:,,,,,,,,,,,::++:::::::::::::,,,,,,:::::::::::+++++++++++++++++++++++++++++++++++++++++%+++%%%%##%%%%%%%%%%%%%%%%%%%%%+++++++++:::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,:::::::::+++++:++++:,,,,,,,,,,,:++++:::::::,,,,::,,,,,,::::::::::::::::++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++:::::::::::::::::::::::::::::::::,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,:::,,,,::::::::::+++++++++++++:,,,:,,,,,,,:++:::::::::,,,,,,,,,,,,,,::::::::::::::::++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++::::::::::::::::::::::::::::::,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,:::::::::::::::++++++++++++++++++,,,:,,,,,,::++:::::::::,,,,,,,,,,,,,,,:::::::::+++++++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++:::::::::::::::::::::::::::,,,,,,,,,,,
,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,::::::::::::::++++++%++%%%%%++++++,,,::,,,,,:+++::::::::,,,,,,,,,,,,,,:::::::+++++++++++++++%%+++++++++++:+++++++++++++++++++++++%%%%%%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++:::::::::::+:::::::::,,,:,,,,,,:,
,,,,...,,,,,,,,,,,,,,,,,,,,,,,,:,,,::,,,:::::::::::++++++%%%%%+++%%+:::::+:,,:::,,,,:++::::::::,,,,,,,,,,,,::::::::+++++++++++++%%%%%%%%%%+++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%%%%%%%++++++++++++:+:+:::::::::::,,,:,,,,,,,:
,,,,...,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::++++++++%%%%%%%+++++++::,,,,::,,,::,,,::++::::::::,,,,:::::::::::::++++++++++++++++++++%##@##%++++++::++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%%%%%++++++++++++:::::::::::,::,,::,,,,:
,,,.,.,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::++++++%%%%%%+++++++++++:,,,,,::,,,::,,,,:++:::::::::::::::::::,,:::::++++++++:::++:::++++%#@@@#%++++:::++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%+%+%+%%++++%+%%%%%+++++++++::::::::::::,::::::::,,
,,,,..,,,,,,,,,,,,,,,,,,,,,:::::::::::::::++++%%%%%%++++++++++++++::,,,,,::,,,,::,,,:++::+++::::+++::::,,,,,,,,,,::::,,:::,,:::::++++%#@@@#%++++:::++++++++++++++++++++++%%%%%%%%%%%%%+%%%%%%%%%%%%+%+%%%%++%++++++++++%%%%%%%%++++++::::::::::::::::::,:,
,,,,.,.,,,,,,,,,,,,,,,,,,,,::::::::::::::++++%%%%+++++++++++++++++::,,,,,,:,,,,::,,,:++::+++::+%#%::,,,,,,..,,,.,,:,,,,,:,,,:::::::+%##@@@#%++++:::++++++++++++++++++++++%%%%%%%%%%%%%+%%%%%%%+%%%+%+++%%%+%%++++++++++++++++%%%+++++++:::::::::::::::::::
,,......,,,,,,,,,,,,,,,,,,:::::::::::::++++%%%%+++++++++++++++++++::,,,,,,:,,,,:::,,::+::+++++%@#+:,,,,.,,..,,..,,:,,,,,,,,,:::::::++##@@@#++++:::++++++++++++++++%++++++%%%%%%%%%%%%%%%%+%%%%%%%%%%+++%%+%%+++%++++++++++++++++%%%%+++++:::::::::::::::::
,,.,,..,.,,,,,,,,,,::,,:,::::::::::++++++%%%++++++++++++++++++++++::,,,,,,,,,,,:::,,,::::++++%#@#+:,,,,.,,..,,..,,,,,,,,:,,:::::::::+%#@@#%+++++::+++++++++++++++%%+++++%%%%%%%%%%%%%%%%%%%%%%%%++%%%+%+%%%%++++++++++++++++++++++%%%%++++:+::::::::::::::
,,,,,..,,,,,,,,,,,:::::::::::++::++++++%%%+++++++++++++++++++++++++::,,,,,:,,,,,:::,,:::::+++%#@@%+,..,..,...,,,,,,,,,,,:++%%::++::++%#@#%++++++::+++++++++++++%++%%%++%%%%%%%%%%%%%%%%%+%+%+++%++%%%+++++++++%++++++++++++++++++++%%%%%%++++:::::::::::::
,,,,,...,,,,,,,,,,::::::::::++++++++%%%%+++++++++++++++++++++++++++:,,,,,,::,,,,:+:,,,::::+++%##@#%:..,,,,,.,,,,,,::,,,:+%###%%%++++%####+++++++::++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%+%%+%%%%+++++++%+++%++++++++++++++++++++++%%%%%%++++:::::::::::
,,,,,,,,.,,,,,,,,::::::::::+++++++%%%%++++++++++++++++++++++++++++++:,,,,:::,,,,,:::,,::::+++:%#@#%:,.,,,,:::+::::+%++:++++%%%%++++%#@@#%+++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%++%%+++++++++++++++++++++++++++++++++++%%%%%+++++:::::::::
,,,,,,,,,,,,,,,,::::::::::+++++%%%%+++++++++++++++++++++++++++++++++::,,,:+::,,,,:::,,,:::++::+####+,,,:::++++:::++++:::::+++++++++%@@#%++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%++%++%%%%+++%++++++%+++++++++++++++++++++++++++++++%%%+++++++:::::
,,,,,,,,,,,,,,,::::::::++++++%%%%++++++++:+++++++++++++++++++++++++++:::::++:,,,,::::,,,:::+:::+###%::,::::::::::::+::::::::::::::++##%+++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%+%+%+%+++++++%+++++++++++++++++++++++++++++++++++++++%%%++++++++::
,,,,,,,,,,,,,,,:::::::+++++%%%%+++++++++++++++++++++++++++++++++++++++++++++:,,,,::::,,,:::++:,::%##+:::::::::::::++::::::::::::::+%%%+++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%++++%%++++%+++%++++++++++++++++++++++++++++++++++++++++%%++++++++:
,,,,,,,,,,,,,,:::::::+++++%%%+++++++++++++++++++++++++++++++++++++++++++++++:,,,,,:::,,,,::++::,,:%#%::::::::::+:::::::::::::::::++%%+++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%+%%%%++++%++++++++++++++++++++++++++++++++++++++++++++++++++++%%+++++++
,,,,,,,,,,,,,:::::+++++%%%%+++++++++++++++++++++++++++++++++++++++++++++++++::,,,,,:::,,,::++:,,,,:+%:,,,::::::+::::::::::::::::++%%+++++++++++++++++++++++++++%+%%%%%%%%%%%%%%%%%%+%+++%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++%%++++++
,,,,,,,,,,,::::::+++++%%%++++++++++++++++++++++++++++++++++++++++++++++++++++:,,,,,,::,,,:::+:,,,,::++:,,,,:::::::::::::::::::+++%%++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%+%%%%+++++%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++%+++++
,,,,,,,,,,,:::::+++++%%%+++:::++++++++++++++++++++++++++++++++++++++++++++++:::,,,,,:::,,,::+::,,,,,:+::,,,:::::::::::::::::+++%%%++++++++++++++++%++++++++++++%%%%%%%%%%%%%%%%%%%%%+%%%+%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%++
,,,,,,,,::::::+++++%%%++:+++::::++++++++++++++++++++++++++++++++++++++++++:::::,,,,,,::,,,:::::,,,,,,::::,,,:::::::::::::::+++%%%+++++++++++++++++%%+++++++++%+%%%%%%%%%%%%%%%%%%%%%%%%++%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%%
,,,,,,,,:::::++++%%++++::+++:+++++++++++++++++++++++++++++++++++++++++++++:::::,,,,,,:::,,::++::,,,,,,:::::,,:::::::::::::+++%%%%++++++++++++++++%%%++++++++++%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
::,,,,::::::+++++++++:::+::+:+++++++++++:+++++++++++++++++++++++:::::::::+::::::,,,,,,:::,:::+::,,,,,,,:::::,,,,:::::::::++%%%%++++++++++++++++++%%%+++++++++%%%+%%+%%%%%+%%%+++%%%%%++++%++++%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:::,::::::+++%%++++++:++:::+:++++:++++++++++++++++++++++++++++++++::::::::::::::,,,,,,:::,,::++::,,,,,,,::::::::::::::++++%%%++++++++++++++++++++%%%+++++++++%%%%++%+%%%%%%%%++%%%++++%+++++++++%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
::::::::+++%++++++:++:+::++:++++++++++++++++++++++++++++++++:++:+::::::+:::::::::,,,,,::::::::+::,,,,,,,,,,,,::::+++++++++++++++++++++++++++++++%%++++++++++%%%%%%%+%%%%%%%%%%+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++:+
::::::+++%%++++:::::+::+++:::+:+:+++++++++++++++++++:+++++::+:+:::::::::::::::::::,,,,:::::,:::::,,,,,,,,,,,,,:::+++++++++++++++++++++++++++++++++++++++++++%%%+++++%%%+++%%%%+%++%+%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
::::+++%%%+++++::::::::::::+:::+++++++++++++++++++++:::::+::::::::::::::::::::::::,,,,,,:::,::::::,,,,,,,,,,,,,::::++++++++++++++:+++:+++++++++++%+++++++++%%%%+%%++%+%%%+++%%+++%++%++++++++++++++%++++++++++++++++++++++++++++++++++++++++++++++++++++++
:++++%%%%+:::+:::::::+::::::+++::+++++++++++++++:++++:::::::::::::::::::::::::::::,,,,,,::::::::::,,,,,,,,,,,,,:::::+++++++++++:::::+++++++++++++%++++++++++%%++++%%+++%%+%+%+++++++++%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++:++
++++%%%%++++:+++::::::::::::+++:+++++++++++++::++:+::::::::::::::::::::::::::::::::,,,,,:::::::::::,,,,,,,,,,,,:::::++++++:::::::::++++++++++++++%+++++++++%%%%%%%+%++++++%+++++++++%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++%%%+++++::::::::::::+:::+++::+++++:+++++++::::::::::::::::::::::::::::::::::::::,,,,,,:::::::::::,,,,,,,,,,,::::+++:+::::::::::+:++++++++++++%%+++++++++%%%++%+++++%%+%+++++%+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+%%%%++:++::::::::::::::+:+++++:++++:+++:++:+:::::::::::::::::::::::::::::::::::::::,,,,,::::::::::::,,,,,,,,,,::::::++:::::::::::++++++++++++++%++++++++++%%+++++++%++++++%+++%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%%%%+:::::::::::::::::::++::+++::+++++::+:++::::::::::::::::::::::::::::::::::::::::,,,,,,::::::::::::,,,,,,,,,:::::+:::::::::::+:::+++++++++++++++++++++++%%%%+++++%+%++++++%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%%+++:::+::::::::::+:::+:+:+:::+:++++++:::::::::::::::::::::::::::::::::::::::::::::,,,,,,::::,,::::::,,,,,,,,,::::::::::+::::::++++++++++++++++++++++++++++++%++++%++++%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%++:::::::::::+:::::::++++:::+++::+::++++::::::::::::::::::::::::::::::::::::::::::::,,,,,,:::,,,::::::,,,,,,,,:::::::::::::::++++++++++++++++++++++++++++%%+%%++%+++++%+%+++%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++:::::::::::+::::::+:+:+:+++++:+++++::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,:::,,,:::::::,,,,,,,,::::::::::::::++++++++++++++++++++++++++++%%++%+++++%+%+%+%+++++++%+%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++:::::::::::::::+::::::::+:++::+++:::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,::,,,:::::::,,,,,,,,:::::::::::++++:+:+++++++++++++++++++++++%%%%%%++++%+%+%%+%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+:::::::::::::++:::::::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:,,:::,,:::::::::,,,,,:::::::::::+:+++++++++++++++++++++++++++++%%%+%%%+%%%%%%%%%+%++++%+%%+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:::::::::::::+::::::++::+::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,::::,,,:::::::::,::::::::::::++:+++++:+++++++++++++++++++++++%%%++%%%%+%%%+%%%+%+%+++++%+++%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:::+:::::::::::++:+::+++::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::,,,::::::::::::::::::::::::::+++++++++++++++++++++++++++%%%+++%%%%%%%%%%%+%+%+%%+%+%+%+++++%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:::::::+:::::::::::::+::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,,,,:::,,,,:::::::::::::::::::::::::::+++++++:++++++++++++++++%%%%%+%%+%%%%%%%%%%%%%%%%%%%+%+%%%+%+++%+%+%+++++++++++++++++++++++++++++++++++++++++++++++++++++++
::::::::::::::+:+:::::::::+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,::::,,,,,::::::::::::::::::::::::::++++++:++++++++++++%+++%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%+%%%++++++++++++++%++++++++++++++++++++++++++++++++++++++++++++++++++
::::::::::::::+::+::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,,:::,,,,,,,::::::::::::::::::::::::++:+++++++++++++++++++%%%%%++%%%%%%%%%%%%%%%%%%+%%%%++%+++%%++++++%+++++++++++++++++++++++++++++++++++++++++++++++++++++++
:::+:::::::::::+::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:::,,,,,,,::::,::::::::::::::::::++::++++:++++++++++++%%%%%%++%%%%%%%%%%%%%%%%%%+%%%%%%+%%+%%%%%++++%++++++++++++++++++++++++++++++++++++++++++++++++++++++
::::::::+::::::::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::,,,::,,,,,,,,,::::::::::::::::::::::++++++++++++%++++%%%+%%%+++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%++%+%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:::::::::::+:::+++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::,,::,,,,,,,,,,::::::::::::::::::::+++++++++++++++++%%%%%+%%+++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%+%%+%++++%%++++++++++++++++++++++++++++++++++++++++++++++++
::+::::::+:+::+:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,:::::,,::,,,,:,,,,,::::::::::::::::::+++++++++++++++++%%%%%%%%++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%+++%%++%%+++++++++++++++++++++++++++++++++++++++++++++++
:::::::++:::::++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::,:::,,,,,,,,,::::::::::::::::::+++++++++++++++++%%%%%%%%+++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%+%+++%++%%+++%%%%%%%%%+++++++++++%++++++++++++++++++
:::::::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,::::::::,::,,,,,,:::::::::::::::::::++++++++++++%%++++%%%%%%%%+++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%+%%%%%%%%%#########%%++++++%++%++++++++++++++++++
:++::+::+:::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,:::::::::::,,,::::::::::::::::+++++++++++++%%%%%%+%%%%%%%%++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%%++%+%%%%%%+%+%+%++%+++++++
+:+:::++:::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,::::::,,::::,:::::::::++::::++++++++++%%%%%%%%%%%%%%%%%%++%++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######################%%%%%%%%%%#%%%%%#%%%%%%%%%
:::++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,::::::::,:::::::::::::++::++++++++++%%%%%%%%%%%%%%%%%%%%%++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####################################################
::+:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,::::::::::::::::++:++++++++++++++%%%%%%%%%%%%%%%%%%%%%++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########################################################
+::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,:::::::::::++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%++++++++++++++%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%############################################################
+:++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,::::::::::::+++++++++++++++++%%%%%%%%%%%%%%%%%%%+++++++++++++++++%%%%%%%%#####%%%%%%%%%#%%%%%##############################################################
+:+++::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::+:::,,,,,,,,,::::::::::::::+++++++++++++++%%%%%%%%%%%%%%%%+++++++++++++++++++%########@@#####@#########################################################################
++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:++++:,,,,,,,,,::::::::::::::::+++++++++++++%%%%%%%%%%%%%%%%+++++++++++++++++++%#@@@@@@@@@@##@@@@@@@@@###################################################################
+++:+++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++::,,,,,,,,,:::::::::::++++++++++++++++%%++%%%%%%%%++++++++++++++++++++++++%#@@###@@@@@##@@@@@@@@@###################################################################
++++::+++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++::,,,,,,,,,,,::::::::::+++++++++++++++++++%%++++++++++++++++++++++++++++++%##@###@@@@@#@@@@@@@@@@@##################################################################
+++++:++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++::,,,,,,,,,,,,,:::::::::++++++++++++++++++++++++++++++++++++++++++++++++++%%##@########@@@@@@@@@@###################################################################
+++++:+:+::+::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++:,,,,,,,,,,,,,,,::::::::::++++++++:+::+:::::+++++++++++++++++++++++++++++%%##@########@@@@@@@@@@###################################################################
+++++++:+:::::::::::::::::::::::::::::::::::::::::::+::::++++++++++++++++++++++++++++++:,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::+++++++++++++++++++++++++++%%############@@@@@@@@@###################################################################
+++++++++::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++++++:,,,,,,,,,,,,,,,:,,,,,,,,:,::,:::::::::::::::+++++++++++++++++++++++++++++%############@@@@@@@@@@##################################################################
+++++++:++++::++:::::::::::::::::+::+:::::+++++++++%%%%%%%%++++++++++++++++++++++++++++:,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::++++++++++++++++++++++++++++%############@@@@@@@@@@##################################################################
+++++++++++++++++:+++:::::+::::::++:+++++++++++%%%%%#########%%++++++++++++++++++++++++:,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::++++++++++++:++++++++++++%%############@@@@@@@@@@@#################################################################
+++++++++++++++++++::++++++++++++++++++++++++%%%%##############%++++++++++++++++%++%+++::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::+++++++++++++++++++++++++%############@@@@@@@@@@@#########################################%#######################
++++++++++++++++++++:++++%%%%%++++++++++++%%%%%%%%#######%%#####%+++++++++++%+++%%%%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,::::::::::::::::++++++++++:+++++++++++++%%############@@@@@@@@@@#################################################################
++++++++++++++++++++++%%##%####%%%#%%%%%%#%####%%%#######%%%####%++++%+%%%%%%%%%%%%%%##+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::::::::::::::+++::::+++++++++++++++%%#############@@@@@@@@@@@################################################################
+++++++++++++++++++%%%##########################%%%#######%%%####%%%%%%%%###%###%%%####+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::++:+::::+:+++++++++++++%%#############@@@@@@@@@@@################################################################
+++++++++++++++++%%%#############################%%#######%%%%####%%%%%%###############+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::+::+::+:::++++++++++++%%#############@@@@@@@@@@@################################################################
+++++++++++%%%%%%%%########################################%%%#####%%%############@####+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::+::::++++++++++++%%##############@@@@@@@@@@@@###############################################################
++++++%%%%%%%%%#%%%##############################%%########%%%###########@############%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::+++++++++++%################@@@@@@@@@@@###############################################################
+%%%%%%%%%%##%%##%##########################################%%%###@#####@@@###########%%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::+++++++++++++%%################@@@@@@@@@@@###############################################################
%#%%%%%%%%%%%%%%############################################%%####@@####@@@###########%%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::++++++++++++%%#################@@@@@@@@@@@###############################################################
%#%%%%%%%%%%%###################%#%%########################%%%###@@####@@@##########%%%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::+:::::::++++++++++++%%##################@@@@@@@@@@################################################################
%%%%%%%%%%%%##%%%###############%%%%#########################%%###@@@###@@@###%######%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::++++:::::++++::+++++%####################@@@@@@@@#################################################################
#%%%%%%%%%%%%%%%%###%############%%%%#######################%%%%###@@####@@##########%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::+:::::::::++:::+++++%#####################@@@@@@@@##@##############################################################
%%%%%%%%%%%%%%%%####%%##########%%%%%%#######################%%%###@@@###@@##########%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::+::::++++%%######################@@@@@@@#@#####################%##########################################
%%%%%%%%%%%%%%%%%##%%%%##########%%%%%%%#####################%%%###@@@###@@##########%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::+++::::+++%%#######################@@@@@@@#@#####################%####################%#####################
%%%%%%%%%%%%%%%%%##%%%%%########%%%%%%%######################%%%####@@####@##########%%%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::+++++:::::++%%########################@@@@@@@@@@###################%###########################################
%%%%%%%%%%%%%%%%%##%%%%%%#######%%%%%%%%#####################%%%####@@@###@#########%%%%%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::++:+++::+++%%##########################@@@@@@@@#######################%########################################
%%%%%%%%%%%%%%%%%###%%%%#########%%%%%%%####################%%%%####@@@###@######%###%%%%%:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::++:++++++%############################@@@@@@@@#########################################%######################
%%%%%%%%%%%%%%%%####%%%%%#######%%%%%%%%#####################%%######@@###@######%##%%%%%%%+:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::+++++%%##############################@@@@@@#################################################################
%%%%%%%%%%%%%%%%####%%%%%########%%%%%%%####################%%%%#####@@###@######%##%%%%%%%%+::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::+++++%%###############################@@@@@@@#################################################################
%%%%%%%%%%%%%%%%####%%%%%%%#######%%%%%%%###################%%%######@@###@######%#%%%%%%%%%%%+::,,,,,,,,,,,,,,,,.,,,,,,,,,,,::::::::::::::++++%%%################################@@@@@@@######################%##########################################
%%%%%%%%%%%%%%%%%###%%%%%%%#%#####%%%%%%%###################%%%######@@##########%%#%%%%%%%%%%%%+::,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::+++%%%##################################@@@@@@#######################%##########################################
%%%%%%%%%%%#%%%%%###%%%%%%%%%#####%%%%%%%%##################%%%######@@####@#####%%#%%%%%%%%%%%%%%++::,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::++%%%####################################@@@@@########################%##########################################
#%%%%%%#%%%%%%%%%###%%%%%%%%%%%%##%%%%%%%%##################%%%%######@####@#####%%%%%%%%%%%%%%%%%%%%++:::::,,,,,,,,,,,,,,,,,,:::::::::++%%%#####################################@@@@@@#############################################%#####################
%%%%%%%%%%%%%%%%%###%%%%%%%%%%%%%#%%%%%%%%#################%%%%%######@@###@######%%%%%%%%%%%%%%%%%%%%%%+++++:::,,,,,,,,,,,,,,:::::::++%%########################################@@@@@############################################%%######################
%#%%%%%%%%%%%%%%%###%%%%%%%%%%%#%%%%%%%%%%%#################%%%%%#####@@##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++::,,,,,,,,,,::::+++%%%##########################################@@@@#####################################################################
%#%%%%%%%%%%%%%%%####%%%%%%%%%%#%%%%%%%%%%%################%%%%%%#%###@@###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++:::::++++%%%#############################################@@@@#####################################################################
##%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%################%%%%%%%%####@###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################@############%#############%###########################################
##%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%################%%%%%%%#####@@###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%#############################################################################################################################
###%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%###############%%%%%%%#####@@###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####################################################@#################%##########################################################
###%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%###############%%%%%%%%#####@##%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################################################@@@###########################################################################
####%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%###############%%%%%%%%#####@@#%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########################################################################%%#########################################################
###%%%%%#%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%##############%%%%%%%%%####@@##%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######################################################@##################%%#########################################################
###%%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%##############%%%%%%%%######@@#%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%#######################################################################%##########################################################
#####%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%%####@@@#%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################################################################################################################################
#####%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%##############%%%%%%%%%#####@@@#%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################################################################%%##########################################################
#####%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%#####@@@@#%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%##################################################################%#############%############################################
#######%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%######@@@@#%%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%##################################%%###############################%%#############%############################################
#####%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%%#####@@@@@#%%%%%######%%%%%%%%%%%%%%%%%%%%%%%#%%%#####%#%##%#%%%#####################%%%%################################%##############%###########################################
######%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%%#####@@@@##%%%%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%######################%#%%################################################%############################################
######%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%%#####@@@@@##%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%################################%%%#############################%##%################%############################################
#######%#%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%%#####@@@@@##%%%%%%%%%%#%%#%%%%%%%%%%%%%%%%%%%%%%%%#%%%%##%######################%%%%###############################%%################%############################################
########%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%######@@@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#%#########################%%%%#####################%#%#####%#%################%#%###########################################
########%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%%#######@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################%%#%%#%%######################%%##########%############################################################
#########%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%%#######@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%######################%#####%%%#######################%%%###########################%%###########################################
#######%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%%%%############%%%%%%%#%%%%%%%%%%%%%%%%%%%%#######################%###%#%##%%%%##%#####################%%%##########################%%%###########################################
#######%%##%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%%############%%%%#%%%%%%%%%%%%%%%%%%%%#%%%#####################%#%#%%%%#%%%%%#########################%%##########################%%############################################
########%%%#%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%%%############%%###%%%%#%###%%%%%#######################%###%#%%%%%%#%%#%%%%%########################%%###########################%%############################################
########%%%#%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%%%############%%####%%#%######################%####%%#%#%%%%%%%%%%%%%%%%%%%########################%%%############################%############################################
##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%%%############%%#####%#######%#########%%#%%###%%%%%%%%%#%%%%%%%%%%%%%%%%########################%%%%%##########################%#############################################
#########%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%############%%%%%%%%%%%%%%###########%%%#####################%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%########################%%%%############################%############################################
#########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++%%%%%#############%%%%%%%%%%%%%%###########%%%%%#################%%%%%##%%%%%%#%%###%%%%%%%%%%%%%%%%########################%%%%%###########################%%############################################
###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%+%%%%%%%###########%%%%%%%%%%%%%%%###########%%%%%###############%%%%%%%#%%%%%%%%#%#%%%%%%%%%%%%%%%%%#########################%%%%###########################%%############################################
###########%%%%%%%%%%%%%%%%%#%%%%%%%%%%%+%%%%+++++%%%%%############%%%%%%%%%%%%%%%############%%%%%%############%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########################%%%%############################%#############################################
#############%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%++++++%%+%%%%###########%%%%%%%%%%%%%%#############%%%%%%############%%%#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########################%%%%############################%#############################################
############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%+++++%%+%%%%############%%%%%%%%%%%%%%%############%%%%%%#############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######################%#%%%#############################%####%########################################
#########%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########%%%%%%%%%%%%%%%#############%%%%%%%##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######################%%%%%############################%%%##%%%#######################################
############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############%%%%%%%%%%%%%%%#############%%%%%%%#########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################%%%%##############################%##%%%########################################
###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%############%%%%%%%%%%%%%%%#############%%%%%%%#########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################%%%%%%############################%%%%%%%%%#######################################
##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%%%%%%%%%%%%%###########%%%%%%%%%%%%%%%%#%##########%%%%%%%###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################%#%%#############################%%%%%%%%########################################
###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%#############%%%%%%%%%%%%%%%%###########%%%%%%%%###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########%#########%%##############################%%%%%%%%%########################################
###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++%%%##############%%%%%%%%%%%%%%%%%%%#########%%%%%%%%###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%%##############################%%%%%%%%%########################################
##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++%%%%%#############%%%%%%%%%%%%%%%%%%%#%#######%%%%%%%%###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########%%###%%%%##############################%%%%%%%%#########################################
##########%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++%%%%%##############%%%%%%%%%%%%%%%%%%%%########%%%%%%%#############%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%#########%#%%%#%###############################%%%%%%%%%#########################################
###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++%%%%%%%#############%%%%%%%%%%%%%%%%%%%%#%######%%%%%%############%#%%%%%%%%%%%%%%%%%%%%##%%%#%%%%####%%###%%%###%##############################%%%%%%%%%%#########################################
###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++%%%%%%%##############%%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%##############%%%%%%%%%%%%%%%%%%%#%#%%###########%%##%###############################%###%%%%%%%%%%%########################################
###########%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++%%%%%%%%###############%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%##############%%%%%%%%%%%#%%%%###%##################################################%%###%%%%%%%%%%########################################
###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++%%%%%%%%##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###############%%%%%%%%%%%%#%#######################################################%####%%%##%%%%%########################################
#############%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++%++++%%+%%%%%################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%%%#%%%####%###########################################################%%%%%#%%%%#########################################
#############%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%++++++++%+%%%%%################%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###############%%#%%#%#%####%####%#########################%#############%%#########%%%##%%##%%%%########################################
##########%###%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++%%%%%%########################%%%%%%%%%%%%%%%%%%%%%%%%%#################%###%####%#%%###########################%#%############%%###########%#%#####%%%%########################################
###########%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++%%%%%%#%%#####################%#%%%%%%%%%%%%%%%%%%%%%%%%################%#####%####%%%%####%##############%##%%%%%%#########################%%%#####%#%%########################################
##########%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++%+%%+%%%%%%%#################%#####%%%%%%%%%%%%%%%%%%%%%%%%########################%#%%######%######%%#%##%%%%%%%%%%##########################%%######%%%%########################################
##########%%%%###%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++%%%+%%%%%%%%#######################%%%%%%%%%%%%%%%%%%%%%%%%%%#############%#######%###%%%%%##%##%%%###%%%%%%%%%%%%#########################%%%%%#####%%%%%#######################################
#########%%%%%####%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++%%%%%%%%%%%################%%%%##%##%%##%%#%%%%%%%%%%%%%%%%%###########%%%%##########%%#%#%%%%%%#%%%%%%##%%%%%%%#########################%%%%%#######%%%%%######################################
#########%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++%%%%%%%%%%%##################%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%#########%%%#%###%####%#%#%%#%%%%%#%%%%%%%%%%%%%%#%#####################%%##%%%%########%%%%#######################################
#########%%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%%%%%%%%###############%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%#########%%#%%%###%#%########%%#%%%%%%%%%%%%%%%%%%%####################%%%##%%%%%########%%########################################
#########%%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%%%%%%%%%##############%%%%%%%%%%#%%##%%%%%%%%%%%%%%%%%%%%%%#######%%%%%%%#######%#######%#%%%%%%%%%%%%##%%%%##################%%%%%#%%%%%##################################################
########%#%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%+++%%%%%############%%%%%%%%%%%%%##%#%%%%%%%%%%%%%%%%%%%%%%#######%%%%%%%%%#############%%%%%%%%%%%%%%#%%%##########%%#######%%%%%%%%%%###################################################
#########%%%%%#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%+%%%%%%%+%%%%%##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%##%####%%%%%%%%%%%%%%%%%##%##########%########%%%%%%%%%%%###################################################
########%%%%%%####%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++%%%%%%++%%%%%%##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%#############%%%%######%%%%%%%%%%####################################################
########%%%%%#%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%++++++%+%%%+++%++%%##################%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%##%%%%%%%%%%#%%%%%%%#####%########%%%%######%%%%%%%%%%####################################################
#########%%%%####%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++%++%++%%%%+++++%%###################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%#%%%%##############%%%%%######%%%%%%%%%%####################################################
#########%%%%########%%%%%%%%%%%%%%%%+%%%%%%%%%%%%%+%+++%+%%%%%%+++++%%%%################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%#%#################%%%%%#####%%%%%%%%%#####################################################
#######%#%%%%##%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++%%%%%%%++++%%%%%###############%%%%%%%%%%#%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%##################%%%#%%####%%%%%%%%%######################################################
#######%#%%#%%%%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%%%%++++%%%%%################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################%%#%%%%#####%%%%%%%%######################################################
#######%%%%%###%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%%%%+++%%%%%%%##############%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################%%%%%%#########%%%%######################################################
#######%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%%%##%%###########%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####################%%%%%########%%%%%#######################################################
#######%%%%%%%%%###%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++%%%%%%%#%%##########%%%%%%%##%%%%%%%%%%%%%%%%%%#%%%%%#%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%###############%#####%#%##########%%%%%#######################################################
########%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++%%%%%%%##%%#########%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%###%%%%%%%%#%#%%%%%%%%%%%%%%%%%%%%%#################################%%%%#########################################################
######%%%%%#%##%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#########%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%%%#############%%%##########################################################
######%%%%%###%%#%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%########%%%%###%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###############%##%############%#%%###########################################################
####%#%%%%%###%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########%%%%####%%#%%%%%%%%%%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#############%%%###############%%%%##########################################################
######%%#%%#%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%############%%%##############%%%%%##########################################################
#########%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%##########################%%%%%###########################################################
######%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########%%####%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########################%%%%%%###########################################################
#####%%%%%%#%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%#########################%#%%%%#############################################################
##%%%%%%%%%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%########################%%%%%%%%#############################################################
##%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################%%%%###############################################################
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########################%%%%%%%%###############################################################
###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################%%%%%%##############################################################
#%%#%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################%%%###%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########################%%%%%%%###############################################################
#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######################%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######################%%#%%%%%%################################################################
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##################%#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######################%%#%%%%###%###############################################################