................::::::::::::::::::::::::::::::::::::::::::::................
...........::::::::::::::::::::::::::::::::::::::::::::::::::::::...........
........::::::::::::::::::::::::::::::::::,,,,,,,:::::::::::::::::::........
.....:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::.....
...::::::::::::::::::::::::::,,,,,,,,,,,,;;;!. !!;;;,,,,,,,,:::::::::::::...
:::::::::::::::::::::::::,,,,,,,,,,,,,;;;;!!/>&.|&.!;;;,,,,,,,::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,;;;;;!!//)|...|>/!;;;;;,,,,,,::::::::::::
::::::::::::::::::,,,,,,,,,,,,;;;;;;!!!!//>|.......|//!!;;;;;,,,,,::::::::::
:::::::::::::::,,,,,,,,,,;;;;;;;!!/>>I>>)||I...... &))>////.!;;,,,,:::::::::
::::::::::,,,,,,,,,,;;;;;;;;;!!!!/> ...................I ..../;;,,,,::::::::
::::::,,,,,,,,,;;;;;!!!!!!!!!!//>|. .......................I>!!;;,,,,:::::::
:::,,,,,,,,,;;;;!/||>///>>///>>)| ..........................|&/;;,,,,,::::::
:,,,,,,,,;;;;;!!//)&...I.. .&||&.............................)/!;;,,,,,:::::
,,,,,,;;;;;!!!//>)I .........................................&!!;;,,,,,:::::
,;;;;!!!!!///>) ............................................)/!;;;,,,,,:::::
..........................................................&)/!!;;;,,,,,:::::
,;;;;!!!!!///>) ............................................)/!;;;,,,,,:::::
,,,,,,;;;;;!!!//>)I .........................................&!!;;,,,,,:::::
:,,,,,,,,;;;;;!!//)&...I.. .&||&.............................)/!;;,,,,,:::::
:::,,,,,,,,,;;;;!/||>///>>///>>)| ..........................|&/;;,,,,,::::::
::::::,,,,,,,,,;;;;;!!!!!!!!!!//>|. .......................I>!!;;,,,,:::::::
::::::::::,,,,,,,,,,;;;;;;;;;!!!!/> ...................I ..../;;,,,,::::::::
:::::::::::::::,,,,,,,,,,;;;;;;;!!/>>I>>)||I...... &))>////.!;;,,,,:::::::::
::::::::::::::::::,,,,,,,,,,,,;;;;;;!!!!//>|.......|//!!;;;;;,,,,,::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,;;;;;!!//)|...|>/!;;;;;,,,,,,::::::::::::
:::::::::::::::::::::::::,,,,,,,,,,,,,;;;;!!/>&.|&.!;;;,,,,,,,::::::::::::::
...::::::::::::::::::::::::::,,,,,,,,,,,,;;;!. !!;;;,,,,,,,,:::::::::::::...
.....:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::.....
........::::::::::::::::::::::::::::::::::,,,,,,,:::::::::::::::::::........
...........::::::::::::::::::::::::::::::::::::::::::::::::::::::...........
................::::::::::::::::::::::::::::::::::::::::::::................