//////////:::::::::::::::::::::::::::::::://///////////////////////////////////////////////+++++++++
//////:::::::::::::::::::::::::::::::::::::::::///////////////////////////////////////////////++++++
///:::::::::::::::::::::::::::::::::::::::::::::/:///////////////////////////////////////////////+++
::::::::::::::::::::::::::::::::::::::::::::::::://////////////////////////////////////////////////+
::::::::::::::::::::::::::::::::::::::::::::::::::::////////////////////////////////////////////////
::::::::::::::::::::::::::::::::::::::::::::/+ossssssssoo+//////////////////////////////////////////
::::::::::::::::::::::::::::::::::::::::+oshddhhhhhhhdddddddhs+/////////////////////////////////////
:::::::::::::::::::::::::::::::::::::/sdmmmmdddddddddddddddmmmmds///////////////////////////////////
::::::::::::::::::::::::::::::::::/oydmdddmddddddddmmmmmmmmmmmmmmmy+////////////////////////////////
::::::::::::::::::::::::::::::::/sdddmmmNNNmmddddmmmmmmmmmddmmmmNNNmh+//////////////////////////////
:::::::::::::::::::::::::::::::+hddmmmmNNNmmdhhddmmmmmmmmmNmmNNNNNNNNmy/////////////////////////////
::::::::::::::::::::::::::::::odmmmmmmNNNNNmdhhdmmmmmdddmmmNNmNNNNNNNNmh////////////////////////////
:::::::::::::::::::::::::::::/hddmmmmNmNNmmmdhhdhhyyssssyyhdmdmmmmmmmmmmd+//////////////////////////
:::::::::::::::::::::::::::::odddmmNNNNNNmmmddys+///:::////++oossyhhddmmmh//////////////////////////
:::::::::::::::::::::::::::::ydddddmmmmmmmdyo+/:::::::::://////++oossyhdmNy/////////////////////////
:::::::::::::::::::::::::::::odhyyssooooo+/::::::::::::::://///+++ooossyhmmo////////////////////////
:::::::::::::::::::::::::::::+hhsso+//////:::/:::::/:///://////+++oooossydmy////////////////////////
:::::::::::::::::::::::::::::ohyso++//////:::::::::////////////+++oooossyhmh////:///////////////////
:::::::::::::::::::::::::::::syysoo+//////::::::::::::::////////++ooossyyydh/::::///////////////////
:::::::::::::::::::::::::::::yysooo//////:///:::::::::::::://////+++oosyyhds/:::::://///////////////
:::::::::::::::::::::::::::::sysso+//////+++++oooo+//::::////+oossssssssyhdo::::::::////////////////
:-:::::::::::::::::::::::::::sssso+///+++//////++oo++/:://++ossso+++osyyyyh/::::::::/://////////////
::::::::::::::::::::::::::://ososo///////+ooyyhysso+++:::+oyssoooooossyyhyy:::::::::////////////////
-:::::::::::::::::-:::::::+so++/oo///////+++yhyo+ss+/+/:/oysys+shdhyhhyyyyo/:::::::::///////////////
-::-::::::::::::::::::::::ss////++///::::////++++++//+//+osoo+++sysosyyyyyyys/::::::::://///////////
----::-:---:-::::::::::::/oo::+o++//::::::::/:://///////+osso++++oooooossyymmo::::::::://///////////
----:----:::-::::-::::::::++/oo+/+//:::::::://///////////+syso+++++++++osyyhdo:::::::://////////////
---:-:------:::---:::::::://+o::/+//:::::::::::::://+/////osyo+++++++++osyyyh+:::::::::::///////////
-:-------::-::-:::::::::::://+/:/+///::::::::::::/+++/////+syy++++++++oosyhyy/:::::::::::///////////
------:--::-::--::::::::::::::::/++//::::::::::::/+osso+oshhyys+///++ooosydys::::::::::::///////////
-----::--:---:::::-::::::::::::://////:::::::::::/+++/+osyhhhyso////++osyyhy+::::::::::::://////////
------:--:::::::::::::::::::::::/+////:::::::::::////:/+//ossoo+++/++ooyyyyo::::::::::::/://////////
---------:--:---::::::::::::::::://////:::::://:////++++++osssoo+++++oyyyo/::::::::::::::://////////
------:--:---::::::::::::::::::::///////::::/sooosssyyyyyyyhhhyy+++oosys:::::::::::::::::://////////
----------:::::::::::-::::::::::://////:::::///+++o+ooooosyyhhyo//+osyh+::::::::::::::::::/:////////
-----------:::::::::::::::::::::://///::/:::://///+osssssyyhyso+++osyys:::::::::::::::::::::////////
-----------::::::::::::::::::::::/+/////:/::::::://///+++oooooooosyyyy/:::::::::::::::::::::////////
----------:-:::-:-::::::::::::::://+//////:::::::::::////++oooossyyyy+:::::::::::::::::::::::://////
---------:--:::-::-::::::::::::::/://+++////:::::::://///++oosssyyys/::::::::::::::::::::::::://////
--------:-:--::--::::::::::::::::/::///++++++///////////+oossssyyy/::::::::::::::::::::::::::://////
-------::--:::-::::::::::::::::://:::::///++ooo++o+oooooosssssssys:::::::::::::::::::::::::::///////
-----:-::-::::-::::::::::::::-+yo:::::::////+++oosssssssssssssyyyo:::::::::::::::::::::::::::://////
---:::::::::::::::::::::::::-.yyo::::::::://////++ooosssssssyyyyy/:::::::::::::::::::::::::::://////
:--::::::::::::::::::::::::-..+yo/:::::::::::/::::///+++oossyyyyy/:::::::::::::::::::::::::::://////
-----:::::::::::::::::::::.....ss/:::::-::::::::::::::///+osssssyo/::::::::::::::::::::::::::///////
::--::::::::::::::::::::-.....`.o+/:::-:--::::::::://:///oosssssyy+::::::::::::::::::::::::::///////
:-:::::::::::::::::::::-...`````.+/:::----::::::::////++ooooooooyyo:-:::::::::::::::::::::://///////
:::::::::::::::::::---..``````````-/:::-::-:::::::///++ooooo++ooys+:-.-:::::::::::::::::////////////
::::::::::::::::--.....````````````.::::::--:::::::///++++o++++ohs/:-..-::::::::::::::://///////////
::::::::::::--..`````````````````````-:/:::::::::::////++++++++oyo:-.....:::::::::://///////////////
::::::::---......`````````````````````.:/::::::::://///+++///+++so:-....`---------:::://////////////
:::::---....````````````.``````````````.-:/:::::::://///////++++o+-....``//:::---------::///////////
::---.......````````````..``````````````..-//:::://////////++///:--..````-//-::::::::::---::////////
--....`.............`````..```````````-::-..://////////////+++:......````/++/::::::::::----::://////
..``````````````...........````````.-://:::-.-://///////:/+++-...````..-/++++:-::::::--------://////
````..````````````````````..`````.-:/:::--------::////:::/+/...``````-/++/////-::------------:://///
...........````````````````````.-:::-----....-------:::::/:.```````.:++///::::::::----------.-:-:///
................`````````````..-:--..````............--/:-.``..--:////:::-------------------.-:--://
......``..````.....``````````......`````````````...``..::..-:://::::------------------------.--:--:/
````..```````````.......````````````````````````````````.-:::--..............--------------..--:---:
``````.```.``````````.......````````````````````````````-:-....................---------..--...----:
``````````.``````````````.....`````````........````````.--.......................-------...-...-:---