.--....-.-.-...--..--.-------.------,,--,,-,--///////////////////##/////////-----/------------/-/---/--
---...--.---..--..-.-...----------------,,--///////////////////#//////#///////--//------/------/-/--//-
.-..-.-.-----.---.-.------------------,---//////////////#//###////#/#/####/::::///-/----/-//--//-/-//--
....---...--.---..-.----.----------,--,-/////####///######################/##///:///---/////-//----//--
...----.--.-----..-.---------------,---//////#########+##+########+#++#########///://-//////------//--/
..-----.----.---..-------------------///////#####+###+##%#+++++%+##+%+%#+##+#######////-///---//--/////
...--.----------..-----------------//////########+###+##+##%++%%+##%%%%%++%%%#+#+###/::////-/////-/--//
...-..---.------..-------.---------/////#//#+++###%###%+%%%+%%%%+%+%%%%%%%%+++++++#//#/=////////////-/-
--.-..---.------------------------/////#///#++++###+####%%+%%%%%%%%%%%%%%%%%+%%%%++####/:///////////-/-
.-.------..---------------------////////####++++%+##%X##%%%#%%%%%%X%%%%%%%%%%%%%%%+++###/://///////-///
.--...----------------------/,--///////###+++####+%##+%##XX%%%%%XXX%X%%%%X%%%%%%%%%++####/:=///////-///
.--.-..---..----------------/-///////##++#####/#######%%##%%%XXXXXXXXX%%X%%%%%X%%%%%++####//://////////
.-----.---------.--------------/////####+###/////######%#%XXXXXXXXXXXX%XXXXXXXXX%%X%+%+%+#//://=/://///
---.-...-----.---------------//////#######/////////#####%#XX%XXXXXXXXXXXXXXXXXXXXXXX%%%%#+##/=:=/=/////
-------..--------.-----------//////##+###//;;///;///####%#XXXXX$X$XXX$XXX$$XXXXXXXXX%%X%#++#/::=/==//=/
-..-.--.-.---.--------------/////#/#####//;//;;;;;//#####%%XX$XXX$$$X$$XX$$$$X$$XX$X%%%%%%%##/://////==
...------..--..------------/////###+##///;/////;;;////#####X$$XXX$X$XX$XXX$$$XXX$$$XXXXXX%+%##:/:://::/
....--.....--..--.--/------/////#####/;////::////;;///######X$XXXX$X$XXXXXXXXXXX$X$$XX$X%%X%%#/:::::::=
.....-...----.---.---------////#/####;//::::::://;;///##%###X$XXXXX$XXXXXXXXXXX$$XX$$XXXXXX%%##/:::/::=
.......--.--------.------,////####%#/;//:::::///;;;///#+###%XXXXXXXXXXXXX$XXXX$X$XX$$X$XXXXX%%#/:::::::
....-.---.-----.-.------,-///####+#////:::::////;;;///###+##XXXXXXXXXXXXX$XXXX$XXXX$$$$$$XXX%%#///:/:::
....-.-/--.------.--.----///#/##%+#///:::::://///;;///###+%#XX$XXXXXXXXXXXXXXXXXXXX$XX$$$XXXX%%#//:::/:
..-.-../--.--/----------/////###%##//:::::::////;;/////###%#XX$XX#XXXXXXXXXXXXXXXXXXXX$X$$XXX%X%#/:::/:
....-.----.------------,///####++#/;/::::::////;;;/////##%%##XXXXXX$XXXXXXXXXXXXXXXXXXX$$XX$XXX%#/:::::
...--.----..----------,-///####+%#///::::::////;;;/////##%%##XXXXXXXXXX#XXXXXXXXXXXXXXXX$$X$$XX%##/://:
...--.-.--.------------////###%%%#/;/::::::////;;//////#####%XXXXXXXXXX###XXXXXXXXXXXXXXX$$$$XXX%#//::/
--.--.-....----.-------///###%%%%#////:::://////;;/////######XXXXXXXXXXX#XX#XXXXXXXXXXXXXX$$$X$X%#//://
.----.-.-.---.-.------////###%%%%#///::::://////;;;/////#####XXXXXXXXXX###X#X#XX##XXXXXXXXX$$$$XX##///:
.---......-----.-,----////##%%%%%#/;/:::/://;////;////####%##XXXXX##XXXX##X####XX##XXXXXXXX$$$$$X%#///:
.---..-.-.------------////##%%%%%#////:::://;///;;/####XX+%%XX#XXXX##XXX########XX##XXXXXXXXXX$$XX##///
.---....--.-.-------//////##%%%%%#////:::://;//;/###X%XX%#+%#XXXXXX###XX#H##HH######XXX#XXXXX$X$XX%#///
.--.--.---.-.------//////##%%%%%%#;//:////;;;///#%%X%X####%%XXXXX###X###X##HHHH###X#XXX#XXXXXXX$XXX#/::
.--.--.---.--------/////###%%X%X%#////////;;///##%%X%#####%%XX#XX##########HH@@#H#X#####XXXXXXXX$$X##//
..-...----.-------,-////##%%%XXXX#////;;//////###%%++###%%X%X$X#XXX###X####HH@@H###H#HH#X#XXXXXXXXXX#//
..---.-----.------,-///###%%%XXX##///////;///#+++%++##XXXXXX%XX#XXXX####HHHHHH@HH###HH#####XXXXXXXXX#//
...--....--..------////###%%%XXX#//;;//;//;####%%++%XXXXXXX#XXXXXXXX####HHHHHH@@HH##HHHHH###XXXXXX$X#//
...---...---------/////###%%%XX%#//###//;;;//#%%%%+XX$$XXXX##XX#XXX#####HHHHHHHHHHHHHHHHH#XXXXXXXX$XX#/
...----...--------/////###%X%XXX%##%%###/;;/##%X%%%XXXXXXXXX#XX#X#X#####HHHHHH@HHHHHHHHHH###XXXXXX$$X#/
....---...-------//////###%XXX$XX%%%%###////#+%XX+%X$###XXXXXXX#X#X###H##HHHHH@@HHHHH@#HH####XXXXX$$X#/
....---.--.-----/////#####X%X$$$X%##+####;//#%XX%%%XX##XXXXXXX#XXXXX####H#HHHH@H@@HHHH##HH##XXXXXXX$$#/
....---.-.------//////####X%XX$X#########///#%%X%%XXXXX%#%%XXXXXXXXX####HH@#HH@@@@HHHH##HH###XXXXXXX$X#
.-.--.-----------/////##/XXXX$X%+%XXXX%%#//#%%%XXXXX%%###%%XX%XXXXXX####HHHHH@@@@@@HHHHHHHHHH#XXXXXX$##
--.-....----.----////####XXXX$X%XXXXXXXX#;/#%%XXXX%%%%%%%###%%XX#XXX######@H@@@@@@@H@@HHHHHHH###XXXX$X#
----..-..--------///#####XXXX$XXX$$XXXXX#//#%%%%XX%%+++###/#%%%X#X$XX#####@#@@@@@@@@@@HHHH@@H###XXXXXX#
...--.-..-------//:/###%#XXX$$X$X$XXX%X#//##%%%%%%%%++##////#%%X#XXXX#####HH@@@@@@@@@@@@HHH@HHH#XXXXXX#
.-.--.-.--------/::####%%%XXXXXX$$X###X#//#%%%X%%%%%+##/////#%%X#XXXX####@H##@@@@@@@@@@@HH@@@HH###XXXX#
.----.-.-------//::###+##%XXXXX$$$X#XX##//#%%XX%%%%#####////#XX##XXXX####@@H#@@@@@@@@@@@HH@@@HHH#XXXXXX
..-.---..------//:/###+##%XXX$X$$$XX####//#+%XXXX%%%##//////#%%##XXXXXX###@@@@@@@@@@@@@@H@@@@HHH##XXXXX
....----------,-///######XXXX$$$X$X%####//#%XXXX$X%###//////##X##XXXXX##H@@@@@@#@@@@@@@@@@@@@HHH####XX#
..-.---.-.------/:/####X#X$XX$$$$$X%%%#///#%XX$$XX%##///////##XX#XXXXX###@@@@@@#@@@@@@@@@@@@@HHHH###XXX
.--..-.--.-----//:#######X$$XX$$X$XX##////#%XXXXXXX%#///////##XX#XXXXX##@@@@@@@@@@@@@@@@H@@@@@@HH###XXX
.--..----------////#####%XX$XXX$XXX###///##%%%%%XXX%#//////###XXXXXXXX##@@@@@#@@@@@@@@@@@@@@@@@@@HH#XXX
.-..-----------////#####%XX$XX$XXX%#/#/;/##%%%%X$$$X%#/////###XXXXXXXX##H@@@@@@@@@#@@@@@@@@@@@@HHHH#XXX
...-----------///#/#####XXX$XXXXXX%#/////#%XX%%X$$$XX#////####XXXXXXXX##H#@@@@@@@@@@@@@@@@@@@@@@@HH##XX
...-----------///#/###%%XXXXXX$XX%##/////#XXX##X$$X$X#////####X#XXXXXX####@@@@@@@@@@@##@@@@@@@@@@@HH#XX
..------------////####%%XXXXXXXXX%##///##+%XXX##X$XX%+#//#####XXXXXXX#####@H@@@@#@@@###@@@@@@@@@HHHH#X#
-.-----------/-///####%%XXXXXXXXX+#////##X%X$X$$XXXX%+##/#####X#XXXXX#####@@@@@@#@@@#@@@#@@@@@@@@H@H##X
---------.---/-//#####%%XX$$$XXX%++///;#XX%XXX$$XXX%%+####++%XX#XXXX######@@@@@@###@#@@@#@@@@@@@@@@H##X
------------,/-//######%X$$$$XXX%+##//;/#%##%%XXXX%%%++#+++%%X##XXXX#X####@@@@@@###@#@@@@@@@@@@@@@@HH#X
------------,////#####%%X$XXXXXXX%#//////#####%%X%%%%%++++%%%X##XXXXXXX###@@@@@@@@@#@@@@@@@@@@@@@@@@H#X
--.----------////#####%%X$$XXXXXX+#//////#####%%X%%%%%%+++%%%X#XXXXXXXX###@@@@@@#@@##@@@@@#@@@@@@@@@H#X
-------.----/////#####%#X$$$XXX#X%#//////#####%%%%%%%%%%++%%XX#XXXXX######@@@@@@#@@######@###@@@@@@@H#X
.----.-------////###%%#X$$$$XXXXX%##///////###%%%%%X%XXX%%%%X##XXXXX##X##@@@@@@@@@###@###@###@@@@@@@H#X
-....-------/////###%X%XX$$XXXXXXX#/////#/###%%%XXXXX$XXX%%%X##XXXXX#####@@@@@#######@###@####@@@@@@H#X
-....-----/-////###+%XXXX$$XXXXX#X#////####%%XXXX$XXXXXXXX%X#HXXXXXXX######@@@#####M##########@@@@@@H#X
.....-------////###%%%XXX$XXXXXXX###///###%%%XXXXXX$XXXXXX%X##XXXXXXX###H##@@@###M#MM####@@@##@@@@@@H#X
....-.-----,-///##+%%#X#X$XXXXXXX###///##%XX%####%XXXXXX$XX###XXXXXXX###H##@@@##MM#M#####@@###@@@@@@H#X
-...---------///##%%%XXXXXXXX#XXXX######%XX#///##XXX$X$$XXX##XXXXX##X###H##@#@##MM#MM##M######@@@#@@@#X
-.---..---,--///###%%XXXXXXXXXXXX##%+###%X##///#%%XX$$$XXXX##XXXXXXXX###H##@@@@#MM#MM##M##M###@@@@@@@#X
---..-.-----////##%%%XX#XXXXXXXXXX##+##%XX#####%%XX$$$$XXX##XXXXXXXXX###@#########MMMM#M##M###@##@@@@#X
.--.--.-----////##%%%%XXXXXXXXXXXX#X%##%X#####XXXXXXXXXXX###XXXXXXXXX###@#@####M#MMMMM#M#MM##M#M#@@@@#X
..-.-.-------///##%%X%XXXXXXXXXXXX#X##XX%%+%XXX%%%%%%%%XX##XX###XXXX#H#########M#MMMMM#M#MM######@@@@##
---.---------///##%%X%XXXXXXXXX#XX##X##X++##%%%##%%%%%XX###XXXXXXXX####@##@#@##M#M#MMM#M#MMM###@@@@@@##
.--.---------///##+%%%XXXXXXXXX##X#####++##########++%XX##X##XXXXX#####@#M@###MM#MMMMM#MMMMMM###@#@@@#X
-....--------///##%%%%XXXXXXXXX######X%++#####//###+%XX##XX##XXX####H##@######MM#MMMMM#MMMMMM####@@@@@#
--.-..-------///##%%%X%XXXXXXX##XX###XX++#+#/////##XXX###X##X#XX###HH#@#####@####MMMMMMMMMMMM####@@@@@#
-.-------,-,-///###%%%XXXXXXXX#H#X####X%++##///###XXX###X##XXXXX##HHH#@###@######MMMMMMMMMMMM#@#@@@@@@#
--------------//###%%XXXXXXXX####XX####%%####//##XXX###XX#####X#HHH@H@@##@@###M#MMMMM#M#MMMMM###@##@@@#
------.-------///#+%XXXXXXXXXXX##XX#H##XX+######XXX####XXX##XX#HHH@@H@@####M#MM##MMMMMMMMMMM####@##@@@#
.-------------////#%XXXXXX#XXXX###X#####X%%%#XXXXX###XXXXX#XX##H@@@@@@##M#####MMMMMMMMMMMMMMM####@@@@H#
..------------////#%XXXXXXX#XXX####XX#XXXXX%%XXXX###XXXXXXXX##H@@@@@@@##M##M###MMMMMMMMMMMMMMM####@#@H#
...--------,,--/#/#+%XXXXXX##X###XX##XXXXXXXXXX###XXXXXXXX##HHH@@@@@@##M######MMMMMMMMMMMMMMMM####@@@H#
.-.------------//##%XX$$XX#XXX#X#######X#XXXX###XXXXXX##X##HHH@@@@@@@@##MM#MM#MMMMMMMMMMMMMMMMM#@###@H#
.-.------------//##%%XX$XX##XXX#XX#X#XXXXX#####XX#XXX######HHHH@@@@@@###MM####MMMMMMMMMMMMMMM#M#@###@@#
-----------,-,-///##%XXXXXX#X#####X###X######XXX#X##X##HHHHHHHHH@@@@@##MM#M##MMMMMMMMMMMMMMMMM##@####@#
-------------,-///###XXXXXXX#X##########@@@@@####X#####HHHHHHHHHHHHH@###MMMM##MM#MMMMMMMMMMMMM#@####@@#
---.-----/--,--///#+#%X$XXXXX###########HH@@@@######HHHHHHHHHHHH#HHH@####MMM#MMMM#MMMMMMMMMMMM##@###@H#
---------/,----////##%%XX##XX#X##XX#####@H@@@@##@@@@@@@@HHHH##HH##HH@####M#MMM#M##MMMMMMMMMMM#M#@###@##
-/-------/------//###%XXXXXXX##X#XX#@@#HH@@@@###@@@@@@@@H#####HH##HH@###MMMMM##MMMMMMMMMMMMMMMMM####@#X
-/--------------/:##%#%XXXXXXX#######@@@@@@@####@@@@@@HHH#########HH@##M#MMM##MMMMM#MMMMMMMMMMM####@@#X
---------------///##%%%XXX#XXXX#####X#@@@@@@##@@@@@@@H@HH#########HH@@#MMMMM####MMMMM##MMMM##MM#####@#X
-.-------------////#+%%X$XXXXXXXX#######@@@@@@@#@@@@@HHHH#X####XX#HHH@#####MM#MMMMMMMMMMM#MMMMM#####@#X
---------------/////#%%%XXXXXXXXXX####X###@@@@@##@@@@HH###XXXXXXXX#HHH@##MMMMMMMMMMMMMMMMM#MMM#M####H#X
-----,-------/-/-///#%%%XXXX##X##XX##XXX####@@##@@@@@H#####XXXXXXX####@@###MMMMMM##MMMMMM##MMM#M#M####X
-----,,----------/:/#%%%XXXXXX####XX#######X###@@@@@@#H#X##XXXXXXXXXX#H@#@###MMM##MMMMMMMM#MMMM####@#XX
.----,-----------//##%XXXXXXXX######X##########@@@@@####XX#XXXXXXXXXXX#H@@@##MMM##MMMMM##MMMMMM#M##@#XX
---------------/-///#%XXXXXXXXX#################@@######XX#XXXXXXXXXXX#H@@####MM#MM#MMM##MMMMMMM###@##X
----------//--/////##%XXXXXXXXXXX####@###############H###X#XXXXXXXXXXX##@@@#MMMMMMMMMMMMMMMMMMMM###@##X
----------/--/////##%%XXXXXXXXXX######@#########@@@@HH#####XXXXXXXXXX###@@@##MMMMMMMMMMMMMMMMMMM###H##X
---,///////--////#XXX%XXXXXXXXXXX################@HHHH##X##XXXXXXXXXX###H@@@###MMMMMMMMMMMMMMMMM#@@###X
/##########////##%XXXXXX$##XXXXXX#########@########@@@####XXXXXXXXXXXXX#H@@@@###MMMMMMMMMMMMMMM###@##XX
##/#//######//#%%%XXXXXXXX##XXXXXXX############@####@@@###XXXXXXXXXXXXX#HHH@@@@######M#MMM#MM#M###@#XXX
//#####++++##/#%XXXXXXXXXX#####X#XX######@######@##@@@@HH#XXXXXX$$$XXXX#H##HH@@@@@@#M####MMM##M##@@#XXX
+###%%%%+++%##%XXXXXXX#XX#X######X##H##@@@@###@@@@@@@@@HH#XXXXXXX$XXX#X####HH@@@@@@########MMM###@H#XXX
++++%%%%%%%%XX%XXX$XXXXXXX######@#####@##@@#####@#@#@@@@@###XXXXXXXXX#X##X####H@@@@@@#@##MMM##M##HH##XX
++%%%%%%%%%%XXXXXXXXXXXXXX#X#H##@######@@########@#@@@@@@@##XXXXX$XX#XX##XX###HH@@@@@@@####MMMM#@H#X#XX
%%%%%%X%XXXXXX$$XXXXXX#X#X#######@#####@@@@@@########@@@@@@#XXXXXXXXX###X###H##H@@@@@@@@@@@###M#HH#X##X
%%%%XXXX$XXXXX$XXXXXXX#XXXX#######@##@#@@@@@@@@@#@@#@@@H##@@#XXXXXXXXXXXXX######HH@@@@@@@@@@@##@HHHXXXX
%%%%XX$$$$XXXX$XXXXXXX#XXXX########@################@@@H###H#XXXXXXXX#XXXXXXX###HHHHHHH@@@@@###@@HH##XX
XX%%X$$$$$$XXXXXXXXXXX##X##X###H@###@###MMM##M######@@@H######XXXX##XXXXXXXXXX####HHHHH@@@H@#@@@HH#X##X
XXXX$$$$$$$$XXXXX##X####X######H##@##@###MMMMMM#@@@#@@@H#X#####XXXXXXXXXXXXX######HHH##HHHH@@@HHHH##XXX
%XXX$$$$XX$$XXXX#X##X##X#######H###@###@###MMM##@###@@@##XX###XXXXXXXXXXXXXX##XX###HH###HHHH@HHH#HH#XXX
XXX$$$$XXXXXX#X#################HH#HH@#@###MMM##@###@@H#XXXX##X#XXXXXXXXXX###XXXX#####X##########HHH#XX
$$$$$$$X$XX$XXXXX#XX###########HH@HH@@@@@#MMMMM###M#@@@#XXXXX##X#XXXXXXXX###XXXXXX#XXXXXXX#X#X########X
$$$$$XXX$XXXXXXX##X###########@@@@@##@@###MM###M#####@@#XXXXX##XXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXX#X###X
X$$$$XXXXXXXXXX###X#######@###@@@@@@@@@#MMMM###MMM#M#@@#XXXXX#@#XXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXXXX###
X$$$$XXXXXXXXXX#XXX##X###@@####@#@@@@@###MMMMM#MMMM##@@##XX#X####XXXX###XXXXXXXX##XXXXXXXXXXXXXXXXXXX##
$$$$XXXXXXXXXX##XXX#####H@@@@@#@#@@#@@####MMMM#MMM##@@###XX#X#HXXXXXXXXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXX
$$$X$XXXXXXXX###XX#####H@@@@@######@@###MMMMMM##MM#@@@##XXXXX##XX##XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX###
$XXXXXXXXXXXX####X####@##@@@@##MMM######MMMMMMMMM#@@@@##XXXXX#####XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX######
$$XXXXXXXX#XX#######HHH@#@@@@##MMM#####MMMMMM#MM##@@@HH##XXX####XXXX$$$$$$$$$XXXXXXXXXXXXXXX###########
$XXXXX#XXXX#X##H####H@@H@@@@@#####MMMMMMMMMMMM##M##@@H#####X###XXXXXX$$$$$$$$XXXXXXXXXXX###############
$XXXXX#XXXX####H#X##@@@@@@@@@@#####MM#MMMMMMMMMMMM#@@H########XXX$$$$$$$$X$XXX#####################M###
$XXXXX#XXXX########H@@@@@@#@@######MMMMMMMMMMMMMM#@@@@#####H##XX$$$$$$$$$$$XXX############MMM#MMMMMMMMM
$$XXXXXXXX#X#######H@@@#######MMMMMMMMMMMMM#######@@@########XXX$$XXX############M####M###MMMMMMM####MM
XXXXXXXXXX##X####@#@@@@##@###MMMMMMMMMMMMMM##@@@@@@H@@@#H##XXX###################MMM#MM##M#MMMMMM#MMMMM
XXXXXXXXXXX####@@@#@@@@@###MMMMMMMMMMMMMMM#M###@@##H@@######################MM###MMMMMMMMMMMMMM##MMMMMM
XXXXXXXXXX#HH##HHH#@@@@####MMMMMMMMMMM##########@@#@############MMMMMM#MMMMMMMM#MMMMMMMMMMMMM#####M##MM
XXXXXXXXXX##HHH@#@##@@@#########M##MM#####@@##################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM##MMM###MM
$XXXXXXXX##HHHHHH@@@@@@@@@@############@@@@###M#####MMMMMMMM#MMMMMMMMMMMMMMM#MMMMMMMMMMMMMMMM##MM#####M
$XXXXXXXX##HHHH@@@@@@@@@#@@###@@@#####@@@@##MMM##M#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM##MM#####M
$XXXXXXXXXX#HHH@@@@@@@##@@@#@@@#@@@###@@@###MMMM##MMMMMMMMMMMMMM####MMM####MMMMMMMMMMMMMMMMMM#MM#####MM
$XXXXXXXX###HHHH@@@@@@@#@########@##M#############MMMMMMMMMMMMMMMMMMMMMMM#MM###MM#MMMMMM#M##M#M#####M#M
$XXXXXXXX##HHHH@@@@@@@@@@####M####MMMMM#M########MMMMMMMMMMMMMMMMMMMMMMMMMMM######M#MMMMM##M#M####MM###
XXXXXXXX####HHH#@@@@@@@@@#MMMMM##MMMMMMMMMMM###MMMMMMMMMMMMMMMMM##MMMMMMMMMM######M##MM#M#####MMMMMMM##
XXXXXXXX####HHHH@@@@@@@@@#########MMMMMMMMM###MMMMMM#M#MMMM#MMMM##MMMMMMMMMM#M#M#MMMMMMMM#####MMMMMM###
XXXXXXXX##HHHH@H@@@@@@@@@@#####MM##MMMMMMMM###MMMMM###MMMM###MMMMMMMMMMMMMMMMMMMMMMMMM#######MMMMMMMMMM







,,,.,.,.,....,,.,,,,,``....,,,,,,,,.,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,....,,....,.,,,,,,,,,,,,,,.......,,,,,,,,,,,,,,,,::,,,,,,,,::,,,,,,,,,,::::::.`.,,,,,,;`,,,,,,,,,,, ``   ,,,,,,
.,...,,,,...,..,,,,,,.......,,,,,,,,,,,,,,,``,,.,,,,,,,,,,,,.,,,.,,,,.....,....,,,,,,,,,,,,,,,,.......,.,,,:,,,,,,,,,,`:,,,,,,,,,:,,,`:,,,,,,:,:,``.,,,,,,,.,,,,,,,,,,,.`   `:,...,,
..,`..,,,..,,..,,.,,,,......,,,,,,,,,,,,,,,```..,,,,,,,,,,,..,,....,,,.....,....,,,,,,,,:,,,,,,,.....:,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,```,,:::,,,.,,,,,,,,,,,,` ``,,......,
....,,,.,..,,,,,,.,,,,,,,..,,,,,,,,,,,,,. ` ,`.,,,,,,,,,,,,.,.......,.,,,..,,...,,,,, ,,,,,,,,,,,.`,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,.,,,,,,,,,:,:,.,:,:,:,,..,,,,,,,,,,,,.  ,.........
.....,,,..`,,,,,,,.,,,,.,..,,,,,,,,,,,,,,,.`,.,,,,,`,,,,,,,,,,....,...,,,,,..,..,,,,,:,,,,,..,,,,,,,,,:,,,...,,,.,,,::::::,,,,,,,,,,,,,,:::::::`,:::::::.,,,,,,,,,,,,,,:......`.....
....`,,.`,,,,,,,,,,,,,,,.,..,,,,,,,,,.,,,,,,,,,,,.` ``,,,,,.,,.......,,,,,,,....,,,,,,,,,.....,,,,::::,,,,...,,,,,::::::::,,,,,,,; `.`,,::::::.,::::,:,,,,,,,,,,,,,,,,,,,`..``.`...,
...`.,,..,,,,,,,,,,,,,,,....,,,,,,,,,,,,,,,,.,,,,.`  `,,,,,,,,....,,,,,,,,,,,....,,,,,:,,...,,.,:::,,,:,,,,,,,,,:::::::::,,,,,,,,`    ;,:::::.,::::::::,,,,,,,,,,:,,,,,,.`````.,::`,
....,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,.,`.,,,,,,,,,...,,,,,,,,,,,,....,,,,`..,....,:::,,,,:::,,..,,:::::::::,,,,,,,,:   `.,,,,,,.`:::::::,,,..,..,,,,:,,,,,,`.:,,.,,,,,,
......,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,..,,,,....,,,,,,,,........,,,,,,:,,,,::::,:,,,,::,,..,::::::::,.....,,,,.`...,,:,,:`,:::::,...,,.,...,,,:,,,,,,,,,,,.......
........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:.,,,,,,,,,,,.,,,...,,,....,,,,,,,,,...,....,,,,,,:,::::::::::::,:,::,.::::::::,,,,,,,,,....,,,,,,,:.::::,,..,,.,,,.,,,..::,,,:,,::,:...,:,,
......,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,.,:.,,.,,,,,.,,,,,,...,,:,...,,,,,,,,,...,,,...,,,,,:::::::::::::,::,:::,::::::::,,,,,,,```.`:,:,,.,,,,:,::,..,,,,::.,,,...::,:::,,,.,:,,,,,,,
`.....,,.,,,,,,,,,,,,,`,,,,,,,,,,,,,,,,.:.,...,,,,.,,.,,,..,,,,,,..,,,,,,,,,,..,,,,,.,,,,,:::::::::::::,::::::::::::::,,...,..``.,.:::,,:,,,,,,,:,..:,.,,,,.,,.,,,::,,,,,,,::,,,,,,:
......,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,.`,....`, .`,.,,,..,:,,,,,.,,,,,,,,,,,.,,,,,,,,,,:::::::::::::...,,::,,,::::::,.,:,.```,,,,,,...,.,,:,:,:,.,,,,,,,,,:,,,:,::,,,,:,:,,,,,,,, 
,`....,,,,,,,,:,,,,,,,,,,,,,,,,,,,,:`,,,.`.,......,,.,,,,,,:,,,,,,,,,,,,,,,,,,.,,,,,,,,,,:::::::::::,,,,,,.::,,,,,::,.,:`,.```.,,,,,..```.........,,,,,,.,,,:,,::::::,,,:::::::,,,,:
.,,..,,,,,,,,`.,,,,,,,,,,,,,,,,,,,,,: .,,,,,,....,,,,,,,,,,:,:,,,,,,,,,,,,,,,,,,.,,,,,,,,:::::::::::,:::::,,::,,,,::`,::,,.``.,,,,:``````...`....,,,,,:,,,:,,::::::::::,,:::,:::::::
., ,.,,,,,,,,::,,,,,,,,,,,,,,:,,,,,,:.:,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::::::::::::::::,,,,:,:, ::::,..,:``.,,.`...`..,......,`;,:,,,,,::,:::::::,,,::::::::::::
...,..,,,,:.,,,,,.,,,,,,,,,,,,,,,,,:::,,.,,,..,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,,:::::::::::,:::,.::.:::,:;,..,.```,.``,,,.,..,......,  ,::::::::::::::,,,,,:::::::::::,
..`.,,.,,,`,,,,,,,:,,,,,,,,,,,,,,,,:,,,,,,,,,,.,..,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,:::::::::::,::::::,:,::,`,::::;  `...,:,,:,.,,,:,,,,,.,..,., `,,::::::::::::,,,,,,::::::::::::
.,:,..,,.,,,,::,.`:,,::,,,,,,,,,,,,,..,,,,,,,...`.,,,,,,,,,:,,,:,:,,,,,,,,,,,,,,,...:::::::::::::::::::::,,:,,....:::. , .:,,::.  ,:,,,,,,,,,,,.,,,,,,:::::::,,,,,,,,,,:::::::::::::
,,,,,,,,,,,,,: ..,:,:::::,,,,,,,,,,.,,,,,,,,,,.,,.,,,,,,,,,::,,,,,,,,,,,,,,,,,,,..,,::::::::::::::,::::::,:,,,.....`,`. `;::,::::,,.,.:::,,,,,,,,:::,:::,::,,,,,,,,,,,,:::::,,::::::
,,,,,,.,,,,,:,;,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,:,:,,,,,,,,,,,,,,,,,,,,,:::,::::::::::::::::::::,,,,........:::::::::::,,,,,,,,,,,,,,,..,:,,,,,.,,,,,,,,,,,,:::::,,:::::::
,,,,,,,,,,,,,,::::,,,:::::,,,,,,,:,.,,,,,,,:....,,,,,,,,,,,::,,,,:.,,,,,,,,,,,,,,,,:,:::::::::::::::::::::,,,,.......::::::::.,:::,,,,,,,,,,,,,,,..........,,,,,,,,,,,::::,::::::,::
,,,,,,,,,,,:,,:::,,,,::,,::,,,,,,,.,,,,,,,,::.....,,,,,,:,,,::,,,:,,,`,,,,,.,,,:,,,,,:::::::::::::::::,,........,...,:::::::::,:::,,,,,,:,,,,.,::,,,......,,,,,,,,,,,::::::::::,' ':
,,,,,,,,,::,,,,::,,,,::,,:::,,,,,,.,,,,,,,,,:,..,.:,,,,,,,,,,:,,,,:,:`,,...,....,,.,:,,::::::::::::::,..........,,,,,..,,:::::,,::,,,,,,::,,,,:,:::::....,,,,,,::,::,:::::::::::::::
,,,,,,,,,,:::,,,:,,,,:,,:::::,,,,,,,,,,,,,::,,....,,,,:,,,,,::,,,,,:,,..,:,         `.,.:,::::::::::,..........,,,,,,...,:::,'`::,,,,,,,,:::::::::::,.,:::::,:::::::::::::::::::::::
,,,,,,,,,:,:::,::,,,::,,,,,,:,,,,,,,,,,,,::,,,,....,:::,,,,,,:,.,::,.::.`       ` `  `,,`;::::::::::..........:,,,:,,,,..,:,.   ::,.,,,,,,::::::,:::,,,:::::::::::::::::::::::::::::
,,,,,,,,,,,::::::::,,,,,,,,,:,,,,,,,,,,,,,:,,,,,.,.:::,,,,,,,:::::,.,,:.;     ````````. .`:::::::::,,,::.....,,:,::,,,`,`:.`     ..`,::,,,,::::::::::,,,::::::::::::::::::::::::::::
,.,,,,,,,,,::::::`:,,,,,,,,,,::,,,.,,,,,,:,,,,,:...::,,,,,,,,,,,,.....,,:,.`  ````````.,,:.:::::::::,,,,....,:,:,,,,,,:,    `,,`..,:,::,,,:::::,,,::::,:,,,:::::::::::::::::::::::::
,.,,,,,,,,,,:.`,,,:,,,,,,,,,:::,,,.,,,,,,:,,,,,::.,::,,,,,,,,,,,.,,,,,.,::::::,.```````,:::,::,::::,...,:..,:,,,,,,,,...`,:, `...,:,:,:::,:::::::,,:::,:,,,,::::::::::::::::::::::::
,,,,,,,,,,,,:  ,,:,,,,,,,,,,:::,,..,,,,,,::,,,,,,.::::::,,,,,,,,,,,,.,,,,,...,::::,...,::::`:::::::,,;,:::,,:,,,,,,.,....,,  .,.,:::::::::::::,:::,,:::::,:::::::::::::::;:::::;::::
,,.,,,,,,,,,,::,,,,,,,,,,,,::::::,,,,,,,,::,,,,,,.,::,,:::,,,,,,.....,,.,,.,,,.,:::::. .,,:,::::::,,,.,:::,:,,,,,.,,....::, ..,,,:::::::,::::,,,:::,,:::;,:::::::::::::::;::::::;::;
,`.,,,,,,,`,,,,,,,,,,,,,,,:::::::::,,,,,,,::,,,,,,,:::,,,::,,,,.,.`....,,.,.,,,,,,::::;:`,,:,,:::,,...::::,,:,,,,..,..:::,,..,,:::,:::::,::::,,,:::::::::,.,,,,,::::::::;;:::;:::::;
   ,,,,,,,,,,:::,,,,,,,,,,:::::::::,,,,,::,:,,,,,,,,::::,,,,,,...,,,,,,,,.,,,,,,:,,,.,,:,`.:,,,::,..,:::::::::,,..,.,::::::,,,,:,,,::::::,::,,,,::::::,...,,,,,::::,::::;;:::;::::::
,``,,,,,,,,,,,:,::,,,,,,,,:::,:::::,,,,,::::;,,,,,,,:::::,,,...,,,,,,,,,,.,,,,,,:,,..,,,,:.:`,,,,,,:::::::::::,,.,:::::::::,::::::::::`::,::,,,,::::,,.,,,,,,,,:::,,,,,:;:::::::::::
`,.,,,,,,,:::::::::,,,,,,:::::::::,,,,,:::::,,,,,,,,:::::,,,..,,,,,,,......,...`:,,,.,.,,,,`:,,,,,:::::::::::,:,,,:::::::::::::::::::::::,,,,,,:::,,,,...,,,,.,:::,,,,,:::::::::::::
,,,,,,,,,,:::,:::::,,,,,,::::::::,,,,,,::::::,,,,,,,,,::,,,..,,,,...``````````., ,,.`,.,:,:....,,,:::::::::::::,:::::::::;::::.:;;:::::,,::,::::,.,,,,,.......::,::,,,:,,,,,::::::::
,.,,:,,,,::::::::,;:,,,,:::::::::,,,,,:;::::::,,,,,,,:::,:,`,,,.```        ```..,`....,.,:,:.,.`,,:,:::::::,:,,,;::::::::::::::::: ;::,:,,:;:,,.,::,,,.......,::::,,,:::,,,,,,::::;:
:.,,,,,::,::::::::::,,,:::::::::,:,,:,' :;:::::,,,,,,,:,,,`.,,.`             ``....,..,..,,,:,,.,,,.::,::::,::::::::::::::::::::::::;::,,;;::.,,,,:,,........,,,::,,,,,::,:;:;::::;:
:,,.,,,,:,,::::::::::,::::::::::,,::,:, ::::::::,,,,::,,:..,.```             ``.`.`,..,..,,,,,,..,,,::::::::::::::::::::::::::::::::;:::;;;;,,:,:,,.........::::,,,,,,,,,,,:;;:;::::
,,,:,,,,,,::::::::::::::::;:::::,,::,:+,:::::::::,,,:,,,.`,.``               ``... ,..,,.,:,,,,,`,,,,:::::::::;::::::::::::::::::::;;;::::::::`:,,:.......,:::::,,,,,,,,,,,,;;;:,,::
,,,,,,,,,,::::::::::::::::::::,:,::,:::::::::::::,.,,,,:`,,```               ``....,,`,:.,,,:,.:..,,:,:::::::::::::::::::::::::::::::;;,:::,:::;:::....,::::::::,,,,,,,,,,,,:;;;::::
,,,,,,,,,,,:::::::::::::::;::,::::,,::::::::::::,:.,,,:..,.```                `.,`. ,``:,..,,:::,`,,,,::::::::;::::::::::::::::::::::::::;;;;;:;;:::.,::::::;;::,,,,,,,,,,,:;;;;::::
,,,,,,,,,,,::::::::::::::;;;::::::,,::::::::::::,.;::,,.,,```                  .,..`,:..,,..,,:,,..,:,:::::::;;:::::::::::::::::::::::,::::::::::::;;:::::::;;:,,,,,,,,,,,,:;:;;::::
,,,,,,,,,,,:::::::::::::::;;;;;::,:::;::::::::::`,`;:,..,.```                 ``....`,.`,:....:::..,,,,,,,::;::,:::,:,::,,,:::::::::::::::::;:::,:::;::::::::::,,,,,,,,,,,:;;;:;::::
,,,:,,,,,,,:::::::::::::::;;;;;:;,::;;;:::::::::,, .:,..,.``                   `.,.,`,,..:..`.,::..,,,,:,,,,:;;:;::,:,::,,;;:::::::::::::::;:::;:::;`::::::::::,,,,,,,,,,,;;;;;;;:::
,,,,,,,,,,:::::::::;:::::;;;;;;;:;,;:;;::::::::;., ',...,.``                   ``,...`,`.,:.:.,::,`.,,,,,,,,:::;;;:,:,,,,,:;;:::::::::::::::;:::::.;;;,:::;::::,,,,,,,,,,:;:;;;;::::
,,,,:,,,,,,,:::::::::::::;;;;;;;;;;;:;::::;::::;.. :,..,,.``                    `.,.,`,,,,,,.,,,::..,,,,,,,,:::;;;::,,,,,:;;;;:::;:::::::;::;;;:;;:,:,:::::::::,,,,,,,,,;:;:;;;;:;::
,,,:::,,,,,,:::::::::::::::;:::;:;;::::::,::::::.`::,..,..``                     .,...`:.,,,.:,,::..,,,,,,,,:::;;;::,,:,:;;;;;;:;::::::;;;;;;;;;:,,: :::::::::::,,,,,,:;;::;:;;;;;:;
,,,:::::,,,,::::,::::::::::::::::;:;:::::; ::::::::,...,.`````                   `,,.,..:.,,.,,,,:..,,,:,,,,::;:;;;,,,,,;;;;;;;;;:::::;;;;:;;:;;;;:. ::::::::::::,,,,:;;;:;;:;;;;:;;
,,::::::,,,,,::::::::::::::::::::::;;::::;';,::::::,...,.`````         `..``      .,..,`,,,,,,,:,:..,,,::::,::;::;;,,,,::,,::;;;;;:::;;;;;:;;;;;:::.`:::::::::::,,,:;;;;;;:;;;;;;;;;
,,:,:,:,,,,,,,:::::::::::::::::::::::::::;::.;:::::,..,,.``````    ``.,.`   ``    .,,....:,:,`,,::..,,,:::::::;:;;;;:::;;:,`.;;;;;::;;;;;;:;:;:::::,.,::::::;:::::::;;;;;;:;;;;;;;;;
:::::,,,,,,,,,,::;;:,:::::::::::::::::::::::';::::,,..,.``````` `````````         `.,,.,.,:,,.:,::..,,,:::::::;::;;;;:;:.:.::;;;;::;;:;;;;;;;;:::::,,,::::;;::::;;;;;;;;;;;;;;;;;;;;
:::::,,,,,,,,,,:;;;;::::,:::::;::::::::::::::::::::...,..``````` `````.````        `,:..,,,:,,::::..,,,:::::::;;::;;;;;;;;;:;:;;;:::::;;;;;;;:::::::,,,::;;;;;;:::;;;;;;;;;;;;;;;;;;
::::::,:::,,,,,:;:;;;:::::::::;;;;;;::::::::::;::,:...,,,,..```    ``..,,..`       `.,,..:,,,,::::.`,,,::::::;;;;;;;;;;;;;:;;;;;;,;:;;;;;;;;,,,,,:::::::::;;;;;;;;;;;;;;;;;;;;;;;:;;
,:::::::::,,,,,,,;;;;::::::::::;;;;;;:::::::;:;::,,,,.::,,,,.``    ``.,,,,..``      `.,,.,::,,,:::.`,,,::::::;;;;;;;;;;;;;;;;;;;;:;:::;:;;;:,,,:::;;::::::;:;;;;;;;;;;;';;;;;;:;;;;;
,:::::::::;,,,,,,;:;;:::::::::::;;;;;::::::;:::;:,:.,.,....,..     ``,.,,,.,.``     ``,,,,,::,,,::..,,,::::;;;;;;;;;;;;;;;;;;;;;';::::;;;;;,::;:::;::::::;;;;;;;;;;;;;'';;;:;;;;;;;;
:::::::::::;:,,,:::;;;:::::::;::;:':;;:::::;:::::::.,....,,,,.     `.,`,,` ..``      ``,:,,,,,.:::,.,,,:::;;;;;;;;;;,.,;;;;;:;;;;;::::;;;;;;;;;::;;;;;;;;:;;;:::;;;;;;;';;;;;;:;;;;;
::::::::::;;;:,,,::;;;::,:::;:::;  ';;;::::::::::::....,:::,,`      .,...``           `,::,::,.::..,,:::::;;;;;;;;;.....;;;;:::;+.::;;;;;;;:;;:;;;:;;;;;:;;;;::::;:;;;;;;;;:;;;:;;;;
,::::::::::;;:::::::;.::,,:;::::'``.::;;:::::::::::..`,::::.,       ..```             `.,::::,.:. ..,::::::;;;;;;;......;:.;:::;'.,:;;;;;;;:;:;;;;;;;;;;;;;;;:::::;;;;;;;;:;:;;;;;;;
,::::::::::;;:::::::; ,:::;;::::;;';:;;:::::::::;::...,:,,:,.      ``````              .,::::,.`... ,::::::;;::;;:,,,......::::;;;,::;:;'':;;:;;;;;;;;;;;;;:::::::;';';;;:;:;;;;;:;;
,,:::::::::;;;::::::::;::;;::::::.`::;::::::::;::::.,.,::,..`       ````               `,,:::,...```,:::,;:;;;;;;,,,,...,,:.,:;;;::::;:;;;;;;;;;;;;;;;;;;;;:::::::;;;;;;;:;;::;;;;::
:::::::::::;;;::::::;;:::;::::::;.;::::::::::::::::`,.::,..,          `                `.,::,,..` `.,:::,;:;;:;;;,,:,,:.,::`.::;;::::;:;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;::::::;;:;:
.,:::::::::;;;;::::::;:;;;;::::;;;:::::::::::::::::.,.:,,,..                            .,,,,:..```.,:::::;;;;;;;:,,,.:,,,:...;:.:::::;:::;;;;;;;;:;;;;;;;;;;::::;;;;;;;:::::::;;::;
,,:::::::::;;;;;:::::::::;;;:::;;;:::::::::::::::::.,.:,...`                            .,,,,:.,.``.,,;:;;;;;;;;;::::,::,:;:...`...::;,;:::::;;;;:::;;;;;;;;;::::;;;;;;;:::::::;;:;;
.,,:::::::;;;;;;;:::::;;::;;:::;;;:::::::::::::::::.,.:....`                            .,,,,:.,....,,::;;;;;;;;;:::::::,::.:.......;;;:;;;::;;;:::::;;;;;;;;;::;;;;;;;:::::::;;;;;:
,,,,::::::;;;;;;;;;:::;;;:;;;;;;;;:::::::::::::::::.,.,``.``                           `.,:,::.....`,,:::;;;;;;;;;::::::;:::,..````.:;;:;',;;;;::::::;;;;;;;;;;;;;;;;;::::::::;;;;;;
.,,,:;::::;;;;;;;;;;;;;;:;;;;;;;;;::::::::::;::::::.,..`````                           `..,,,:..`..`,,:;:;;;;;;;;;;::::::::;:`..```.,;;:,;;:;;;:::::;;;;;;;;;;;;;;;;;::::::::;;;;;;;
.,,::::::;;;;;;;;;;;;;;;;;;;;;;'';:::::::::::::::::.,..```..` ``                       ``,,,::.``..`.,::::;;;;;;;;;;:::::;;;;+.`````;;;::;;;;;;::::::;;;;;;;;;;;;;;;;;::::::;;;;;;;;
,,,,::::::::;;;;;;;;:;;;;;;;;;++++;;;;;;,.:::::::::.,..```..````,.                     ``.,,::..`.`,,::::;;;;;;;;;;;::;;;;::;',....;;;;;;;;;:;:::::::;;;;;;;;;;;;;';;;:::;;';;;;;;;'
.,,,::::::::::::::::::::;;;;'+++#+#+;;::,..::::::,`,,,.````.,.``````                   ```.,::.`.` ,,::::;;;;;;;;;:,,,,,::,:;;',..,::;;'';;:::;:::::;;;;;;;;;:;;;;;;;;;'''''';;;;;;'
,,,,:::::;;;:::::::::::::;''++###+#+#+;::.`;::::: :,,,...``...``                       ` ``.,:.`.`.,,,::;:;;;;;;;;,,,,,,,,::;;;':..,:;;;;;;:;;;;::;;;;;;;;;;:;;;;;;;;;'''''''''';;;'
.,,,::;;:;;;::;:::::::::;+++#'#++'+#++++;````::::;::,,`` ``..```                         ``.::.``.,,:::::::;;;;;',,,,,,,.,::;::;;;:,:;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;';;;''''''''';
.,,::;:::::;::::::::::::+++++####+++'+#'+'  :::::.        .`.```                         ``.,:...,..::;:;:;;;;;;:,,,,,,,;:::.....;:,:;;;;;;;;;;;;;;;;;;;;;;';:::;;;;;''';;;'''';;'';
,,,:;::::::;::::::::::::'+++++++#++#+'+#+++,:.`           `..``                          ``.,,`.,:.,::;:;:;;;;;;,,,,,,,:;;.;.....,..'';;::;;;;;;;;;';;;;;;'';:;;;;''''';;;''''';;'''
,,,,:::::::;;;;;;;;::::;+++'+:':'#';'++++++:       ``     ```.``` ``                     ``,:,..`:.:,::;;:;;;;;,,,,,,,,.,..:........;;;;:;;;;;;;;;;;'';;;''''';;;'''''';;;;''';;;'''
.,,::::::::;;:;;;;;;;;;++++++++++++;,;;;;''+`    ` `,          .```````                  ``,::...,.,,::::;;;;;;:,,,,..;:,,:,,......:,:;;;;;;;;;';;;';'';;;''';;'''''''';;;;';'';''''
,,,::::::::;;;;;;;;;;;;+++++#++++++++;'';+''+    ``,`          ..````,,.                 `.,,,.`:.,,:::;;;;;;;;:,,,,'';;;,:,,,....,,,..:;;;;;;;'';;''';;;;;;;;''''''''';;;;''';;';''
:::::::::::::;;:;;;;;;'++++++#+++++++#+';'+'+; ``..  `          `    ``.`                `,,,:.`;.::::;;;;;;;;;,,,,:';;':.:,,,,..,,.,,........:;';'''';;;;;;;''''''''''';;;;';;;;;;'
:::::;;;::;;:;;;;;;;;;+++++++##+++++++'++;'++'.``..```,       ` ``` ` ````              `.,,,:.`:.;:;;;:;;;;;;;:,,::;;....,,,,,,.,..;,........,;;'''';;:;:;;'''';;;;'''';;;'';;';'''
::;;;;;;;;;;;;;;;;;;;;+++++++####++++++++##+++#``..``,,      ```..```    `              `,,,,``,.,:::;;;;::,';;:,,::.,,,,,,,,,,,,,,.,;,......:,;;;'';:::::;;'''';;;;;'''';;;'';';;';
::;;;;;;;;;;;;;;;;;;;'++++++####+#++++#+++;+#+++`...`.``.....` `...``                  ``,..;.`'.:;;:;;:;;;;;;;;::,:::;::::,,,,,,,,..:;:,...:;;;;'';::::::;''''';;;;;;;''';;'';;;';'
:;;;;;;;;;;;;;;;;;;;;'+++++++++''+#++#++#+###+#+;....`           ````                 ``,,,,:.`,,:;;:;:;;;;;';;:::;;;';;;;:,,,,,,,,...;;;;,;;;;;;'':::::::;'''';;;;;;;;;'';;''';;;''
;;;;;;;;;;;;;;;;;;;;;'+#++++'';;;''++###++++##+'+.... `.`        `                   ``.,.:..``,,;;;:;;;;;;;;;:::,;;;'';;;;::,,,,,,,,,,;;;;:;;;;;;:::::::;''''';;;;;;;;;;'';;';;;';'
;;;;;;;;;;;;;;;;;;;;;++#+++';'::::;;'++#+++++####+`..``,`        `                  ```,.`...`..:;;:;;;;;:;;;,::::;;;;';;;;;;:,,,,,,.,,:::::::;;;;::::::;'''''';;;;;;;;;;;';;'''';;;
;;;;;;;;;;;;;;;;;;;;;++#+++';::::::::;++#+#######+'````,``````` ```               ```..,.`.:,`.,;;;:;;;;;:::::::::::;;;::;;:;;,,.,,;:.,,,::::::'';:::::;;'''''';;;;;;;;;;;;;;;;';;;;
;;;;;;;;;;;;;';;;;;;;++#+++;::::::,,,:;'+#####+'#+;,`.````..,.  . `           ``````....`,`,...;;;::;;;;;;:::::,::::;;;::::;::::,,;;;;,,,,,,,:,'';:::;;''''''''';;;;;;;;;;;;;;;';;;;
;;;;;;;;;;;;;;;';;;;;'+#+++;:::::::,,,::;'+##+#++'''`...,.,,,,` ,` `      ````````......`,,,..,;;:::;';;;;;:::,,:::::;::::::::;:::::;;,,,,,,,,,:;;;''''''''''''';;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;';'';'::;+#++':::::::::,,:::;'+++##+'+'``,....,::.`:`` `````````.....``...`.,;,,.::::::  .::;:;;,,:::::;;::::::::::::::;:,,,,,,,,,;;;;'';'';;';;''';;;;;;;;;;;:;'';;;;;
;;;;;;;;;;;;'';'';':::'+++;::::::,::,:::::;;'+++++++;.`.....,,,.`````..`........````....:,,,..,:::::. `:;;;;:,;;;::;;;::::::::;;::::::,,,,,,,,:'';;'';;;;;;;;'''';;;;;;;;;;:'''''';'
;;;;;;;;;;'''';'';'::::'++:::::::::::::::::;;'+++++++`......,.,,.`.``,,,.....```````...,,:,...,;;::::.::;;;;:;;;;;;;;;::::::::;;::::::,,,.,,,,,';;';';;;;;;;''''';;;;;;;;;;'''''''''
;;;;;;;;;;'''';';''::::;++::::,:,,,,,::::::::;'++++##``.....,..,...``,,,.....```````.,.,.,,.,.:;;::::::;;;;:;;;;;;;;;;:::::::,,;;.::::,,,,,,,,,,';;;';;;;;;;'''''';;;;;;;;'''''''';'
;;;;;;;;;'''''''''';::;:+':::,,,,,,,,,::::::::;'+++##:``,...,..,,...,,,,,....``````..`.,:,..,.:;:::::;;;;;;;;;;;;;;;;;;::::,:,.;;';;::,,,,,,,,,,;;;;';;;';;;''''''';;;;;;;'''''''';'
;;;;'''''''''''''''';:::';::::;;;::,,,::::::::;;'++##'`.,..,,,,.,,.,:,,,,,.```````:....,:,``..:;;;;;:;:;::;;;;;';;;;;;;:::,,:;;''';':,,,,,,,,,.;;';';;;;'';'+,'''''';;;;;;;;''''''''
;;;;'''''''''''''''';;;;;;::::;;'';:::::::::::;;;'++#',,,,,,,,..,,;:::,,,..````,:'';..,:,'';,;''':;;;;,'';;;;;;''';;;;;;:::,;;;;;;;':,,,,,,,,.,''';;;;;;;''''';'''''';;;;;;''''''''+
;;'''''''''''''''''';;;;::::::;;;'';:::::::::::;;''+#'```...`````,;:::,,,,..```.;''`.`,:';,:'''''';;;;;;':;;;;;;;;;;;;;;;::;;;;;;;;;:,,,,,,,.,:''';;';;';'''''''''''''';:'''''''''''
;;''''''''''''''''''+:';::,::;''';'+'::::::::::;;;;+## ``.``````  ;:::,,,,..`````,:..,,`':`,'''';';;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;',,,,,,,.:,:;''''''';'''''''''''''';;''''''''';;
;'''''''''''''''''''':;;::::::;''++'+':::::::::;;;;+##````````..``;;:::,,...``````..`,:,'';;''''':;;;;;;;;;;;;;;:;;'';;;;:;;;;;;;;:';;,,,,,:::::,,:;;;;;;''''''''''''''''''''''''';:
;''''''''''''''''''''+:;,::::::;''+''';::::::::;;;;'+#``````.,;;';;;::,,,,...`````.``,```''''''';;;;;;;;:;;;;;;;,;'''''';:::'';;;'+ :::,,,,:::::,,,,;;;;''''''''''''''''''''''''''';
'''''''''''''''';'+';+::;::::::;;'';';;;::::::::;;;;+#``````.,:;;;;;::,:,.:';'```.``.,.``.;''';;;;;;;;;:::;;;;;:;,''''''''';'';;.: `:::,,,:::::::,,,,:;'''''''''''''+';'''''''''''';
'''''''''''''''''''''',::::::;::;;''+';:::::;::::;;;'#.......:;;;;;;::'''';:`;,`..``,: ````.;..';;;;;;;':;':;;;:;,;'''';;'''';;,., `:.::,,:::::,:,,,,,;'''''''''''''++''''''''''''..
''''''''''';;'''''''';':::::::::;;;''';::;:;;;;::;;;'#:::,,,;;;;;;;;::''''';;'`..```:`````````.;;;;;;;,;.,;''';::';''''';;'';;:,``` `,.:::::::,,,,,:,,,'''''''''''''++'''''''''':,,,
'''''''''''';;''''''';+::::::::::;;'''':::;;''';::;:'#:::;;;;;;;;;;;:::''''';:`.````,````````..;;;;;;;,';;'''';;+  ''''''';';;... ````,,:::::::,:;;;;:;;''''''''''''++'''''''''::,,,
'''''''''''''''''''''''+:::::::::::;;;;:::'''+++;,,:'#::;;;;;;;;;;;;::,,';'';..````.,``` @ ```.;;;;;;;;''';''';';::''''';;;;;;.,, ````,.:::::::::;;;;;;;;;''''''''''+''''+;'+'',,.,,
'''''''''''''''''''+'';'+::::::::::::;:::;'+++'++':,'#:;;''''';';;;;;:,,..,;....``...``` #,```.:;;;;;;;:'''';;;;;;;'''';;;;;;:.,,````.,.::::::::;:;;;;;;;;;';;'''''++''''';+'''+,.,,
;'''''''''''''''''''+'''+::::::::::::::::;'+'++''';,'#:''''''''';;;;;:,,........`.`,.   `#;```.:;::;;;;;;;:;';;;';;''''';;;::,,,,.`.`,..::;:::::,:;;;;;;;;''''''''''+'''''''''''#.,,
;';'''''''''''''''''''''':::::::::::::::,;'++'+++'';'#+'''';''';;;;;;:,,.........``:, ` `#'```.:;:;;;;;;;;;;;;;;';''''';;;;;;.,,.,.....,;:::::,:,,:;;;;;;''''''''''''+'''''''+'''+.,
;'''''''''''''''''''''''';:::::::::::;::,:''''+'+'';'++''';'''';;;;;;:,,........``.;.`` `#;```.:;;;;;;;;;;;;;;;''''''''';;;;;:,,`.,....:',:,,,,,;;::::;;''''''''''''''''''''++''';+;
;''''''''''''''''''''+''';::::::::::;:::::;''''''+''''.+;;;''';;;;;:;::,......````...`  `#:```.,;;;;;;;#;;;;;;''''''''''';;;;;;,..,...,;',,:::,,:`,::::;''''''''''''''''''''''''';::
;'''''''''''''''''''''+'+'::::::::::::::::;''''''''''+:';'''';;;;;;::::,..`.'#````.```` `#. ``.,;;:;;;#@;;;;;;;'''''''''''';;;;;..,..,;;;,,,:,,,,.,,::::'''''''''''''''''''''+'';,,,
;'''''''''''''''''''''+'''::::::;:::::::::;'';;''''';';'''''';;;;;;;:::,..```#;```:```  `# ```.,:;;:;;#:;;;;;;''''''++++:;';;;;;...,'':;;,,,,:,,:.:,,,::;'''''''''''+'''''''''+:,,,,
;'''''''''''''''''''''+''+::::::;::::;':::;;';;;;'';:';+'''';;;;;;;',::,,.```.#``...``  `# ```.,:;;::#;;;;;;;'''''''''++++;;;;;;;:'''''';;,:,,,,,:,,,,,::'''''''''''+'''''''''',,,,,
;';''''''''''''''''''''+'`::::::::::::;;:;;;';;;;;;:,';#;''';;;;;;;',,,,,.````'@`.``    `#  ``.,:;;;#+;;;;;;''''''''';'++++';;;;;;''''''';'::,,,,,;;,++::;''''''''''''''''''';,,,,,,
;';''';''''''''''''''''+;::::::::;;:::;;;;';;;;;;;:,,''+;;'';;;;;;;;.,,,,.` `` #.:.  `   @ `.`..,;;'+;;;;;;;''''''''''''++++'';;'''''''''''',,,,,,:;:::,,,;''''''+'''''''''''',,,,,,
;'''''''''''''''''''''';''::::::::;':::;;;'';;:;;;,::;+;;;''';;;;;;;:,,,,.`` ```#``      #  ``..,::+;;;;;;;;''''''''''''''+++'';''''''''''''';;,,::::,,,,,,:'''''';''''''''''',,,,,,
;;;'''''''''''''''''''':+':::::::::;';;;;;'';;;;;;,::'';;'''';';;;;;:;.,,.`    .:.       +`````.,,+';;;;;'+'''''''''''''''''++';''''''''''''';'+,:::,,:,,,,,'''''''''''''''''',,,,,,
;;;';'''''''''''''''';:;+'::::::::::;'';;;;;;;;;;;::;+;;'''''';';;;;;';...`   `:.``    ` :````..,;''';;'+++++''''''''''''''''++'';;'':'''''';;;;';::,,,,,,,,,::'''''+'''''''';#...;;
;;;;''''''''''''''''.`;:+':::::::::::;;''';;;;;;;;;;'+;;'''+''''';';;;;'..`   ,..``      `````,+''''''''+++++++'''';''''''''''++'''';''''''';;:;;;:::,,,,,,,,::'''''++''''''+ @.;''+
,:;;;'';'''''';:.    ,;;'';:::::::::::;;'''';';;;;;:';;;''+''''''''';:''';'+###';.``    `   ,+;;'#####++'++++++++++''''''''''''+'''''''''''';:::::::::,,,,,,,,:;''''+++'''''+,;;:`  
,,:::,,,:,``     `  `,;;;+;:::::::::::;;;;'++';;;;':+''';'+'''''''''','###+''''+####:  ` `;';#@#+''''''+###'+++++++++++''''''''''''''''''''':::::;:::;;,,,,,,:::;'''+++''''':::::,`.
:`     ````.``.``.`..,;::+;::::;::::::;;;;''';;;;;';++''''''''''''''+##';'''''';;;'+##;,';'@#''';;:,,,:;'''###++++++++++'''''''''''''''''''';::::;:::;;',,,,,;:;;;;;'+'''''::::::,::
.   ` ```..,,,:,``.`.,;::+';:::::::::::;;;;;;;;;;;'''++++''+''+''':#@''''''''';'', .;'@#;##''';:::,,,.` `:;''##++++++++'''''''''''''+'''''+';;:::::::;;;;,.,,'''';;;;;'''';::::,:;''
`    `````.`.:.``````,;::;';;:::;:::::::;;;;;;;;;''++++++++++++'+'##;''''''''';'';; `;;###''''''';;;;::,. .:';#@+++++''''''''';''''''''''++';;::::::;;;;;::::'''''':;;;''',:,::'+''+
`   ` ```...,::``````.:::;+';::::;;::::::;;;;;;;;;'+++++++++++++;##;''''''''''''''',,:';';'';''''''''';;:,``:';#@+++''''''';'';;'''';'+'+''+;;;::::;;;;;;;;;:;;;;';'';;;':,:;'''+'''
`   ```..,,..::.,:.```:::;+';;::::;;::;;:;;;;;;;;;''+++++++++++'##'''''''''''''''';'''#@'##+;;'''''''''';:, `:''#++''''';'''';;;;''';'+'+'''';;:;;;;;;;'';;;;;;;''''''':;.+''''''';;
`   ```.,.,.,:;.,,,.;;;:,:'';;;::::;;;;;:;;;;;;;;''''++++++++++##;'''''''''''''''''';#'#''''''''''''''''';:. ,;'##'''''';'''';;;;;''';+++''''';:;''';;;'';;;;;;'+''''''''.+'''''+';;
.`   ``.,,,,.:;,:,:,:'''':;+';;;::::;;;;:;;';';;:'''''++++++++'#''''''''''''''''''''''#+;+@@+''''''''''''';,``:''#;'''';;;'''''';;''';''''''''':;''''''''';;;;;'''''''''''''''''+';;
.```  ``.,,,,:;:;,:,:'''':'+';;::::::;;;;;;'''';'`'''''+++++++##;'''''''''''''''''''++`.@`  `#'''''''''';';:. :';#@';;'';;'''''';;;'''''''''''+'+'+'+'';''';;;;;+'''''''''''''''+';;
.```  ``.,,,,,::;,::,'';'';''';:::::::;;;;''''';':''''''++++++#+''''''''''''''''''''.         ';''''''''''';. ,;'@#';'''';'''''';;;'''''''''''''+'++'''';'''';;;''+''''''''''''++';;
.```````.,,,.,::;,:,,''''';:+';;::::::;;;;''''';''.''''''+++++#''''''''''''''''''';;   .  `   #'''''''''''';, ,;'##;;'''';;'''''';'''''''''''+'+++++';'''';''';;;''''''''''++''++;;;
...`````.,,,,,:,;,,,.;''''';+'';::::::;;;'''''';+'.'''''''++''#''''''''''''''''';'#   +#@,##  .;''''''''''';: ,;'##';'''';;;'''''''''''''''''+'+++++'''';'''''';;''''''''''++'''+;;;
...````..,,,,,:,:,,.`,;;;;+;;'';::::::;;''''''';+'; :'''''+'''#''''''''''''''''';'#   @#'.##  `'''''''''''';: :';#@;;;'';';'''''''''''''''''++''''++''''';;;;';;;';;'''''+'++'''';;;
....```..,,,,,:,:...`.;;;;''''';::::::;;'''';';;+';  :'''+''''#'''''''''''''''''';:   `.  ::  .;'''''''''''':`;';##;';'';'''''''''''''''''++++++'++'''''';;:;;;;:;;:;;'''''++'++';;;
,,,.``.`.,,,,,:,::..`.:::;;':';;:::::;;;'''';'';+':` .:''+''''#;''''''''''''''';';+           #'';'''''''''':.;''#;;;;'''''''''''''''''''+''++++'+++'''';;;;;:::::;:;;;'''''''+'+;;;
,,.......,,,,,:,,;,.`.::::;:::';::::::;;;''''''''+;:   ,''''''#''''''''''''''''++#@,   .#+   ,##';''''''''''::''+#;'''''''';'''''''''+''''''+++++++''''';;;;;;;::;;:::;;''''''+'';;;
::::,.,.,,,,,,,,,;,.``,,:;:,;;';;::::::;;;'''''''+;:  . `''+''@+''''''';'''';;'''''+#+';';+##+'''';''''''''',;';##;'''''''''''''''''+'''''''++++'+++''';;;;;;;;::;;::::;;'''++''';;;
,::::::.,::,,,,,.;,.``.,,::,''';;::;;:;;;;;;;;;''+;:,     ''''+#;'''''''''''''''''''';''''''''''''''''''''';:'''#;;''''''''''''''''+''''''+'+++''++++'';;;;;;;;::;;:;::;:;''++'''';;
::;:,.::::::,,,:,;,.``.,,,:::+;';;:;;;;;;;;;;;'''+;;:`     :'';#'''''''''''''+#''''''''''';''''';++'''''''';;''##'''''''''''''''''+''''''+'+++'''+++''';;;::::;;;;;;::::;;'''''''';;
;;':,,,,::;:::,::;..```,,,::,;'';;:;;;;;;;;;;;'''';;:,`     ,''##;''''''''''';++''''''''''''';;''#+'';''''';';+#;''''''''''''''''++''''''''++''''++++'';;;:::;::;''':;;:;;''''''';;;
:;';:,,,,,;;;::;;;,,.`..,,::.,';;;:;;;;;;;;;;;;''';::,,   `  `''#+''''''''''''#''''''''''''''';++;';''''''''''#'''''''';'''''''''+'''''''+'''''++++++'';;;::::;;;'+'+::;;;'++'';;;;;
.';:,.,:,,::;;;':;:,,.`.,,:::.:';;;;;;;:::;;;;;'';;::`..    .  ';#''''''''''''#''';''';''';;+#+''''''''''''';#@'';'''''''''''''''''''''''++''''+''+++'';;;:;::;;'''+'+:;;;'+'';;;;;;
.'';:,,,::::;::''';:,...,,,::..';;;;;;;:::;;;;;;';:;:`` `       :##'''''''''''''@+''''''####@;''''''''''''''##''''''''';''''''''''''''''''+''''++'++++'';;;;::;'''''+++;;;;'';;;;;;;
.:';:,,,,,:;;:;;:;';:,..,,,:::.,';;;;;;:::;;;;;;;;;;:,`... `     .##''''''''''';'###########+';''''''''''''##;'''''''';',;';;''''''''''''''''''+++++++'';;;:;'+'''''''+;;;'';;;;;;;;
,,:';:.,,,:::;;;;;',,:,::::::::.';;;;;;:::;;;;;;;;'::;`, ;.   `   `##;'''''''''''+###;;##'##''''''''''''';##'+'''''''''+;,;::'''''''''''''''+''+++#++++++'''++#+'''''+++''';;;;;;;;;
.,:;':,,,:::::::;;'::,.,:::;;;;`,';;;;;;::;;;;;;;'';;; . '          ##''''''''''';#+,,:,,:;+'''''''''''''##+'+'''''''''',.,:''''''''''''''++'+'++++#+#++++++++++++'+++'+''';;;;;;;;;
.,:;;::,,:::::::;;';:,,,.,;;;;;;.';;;;;:::::;;;:;;:;;;., ;`.   `     +#''''''''''''@,,,,,:#'''''''''''';##+;;''''''''''#:#+,:'''''''''''''''''+++++++++++++++++++++++++++'';;;;;;;;;
.,,:;;:,,,::::::';'::::,,::;;'';.:';;;;::::::;;;:;,;;;:``,. ```.      '##''''''''';;@',,'#;''''''''''';##''';''''''''''',:.,;''''''+'''+''''''++++++++++++++++++++'++++'''';;;;;:;;'
..:::;:,,,::::::;;';;:,,:::;:;;'','';;;::::::;;::;,;;;;```, .```       '##;''''';''''''';'''''''''''''@@:''''''''''''''''#'@''''''''++++''''''++++++++++++++++++++'++++'''':;;:;;'''
,,:;:;;,,,,:::::;:;'::,,,,:;;;;;;::';;;::::::;;:::.:;::,.., ``  `     .`'##+''''''''''';'''''''''''''##;''''''''''''''''''''''''''''++++++''''++++++++++++++++++++++++++''''''''''''
,,:;::;:..,::::::::':,,,,,,:;;;;;':+;;;;::::;;::;:.::::,`,,     `    ` .'';##'''''''''+''+'''''';';+##;;';''''';+''''''''''''''''''+++'+++'''+###++++++++++++++++++++++++'''''''''''
,,:+:;:;..,::::::;:':,,,,,,::;;'''',;;;;::::;;;;;,.,::::``:        `````:+''+#+''''''''''''''';'';##+'''''''''''++''''''''''''''+++++''+++'''++##+++++''++++++++++''+++++++'''''''''
,,:';;;;...,:::::;:'::,,,,,,:;;;;'+:';;;:::;;;'':,.,::::.`.` `     `````.++'+'##'';'''''''''''''+##;';'''''''''''++++++++++++++++++++'++++''++###++++++'++#+++++++''+++++++++'''''''
,::';;;;:..,,::::;;',::,,,,,:;;;;;'':;;;:::;';'':.,,::::.`.. `     `....`++'''''##'''''''''''';##;'''''''''''''''''''''''''+++++++++''++++'++++##++++++#+++++++++''''+++++++++++''''
,,:'':;;;`..,,,,,::'::,.,,,,:;;;;;;':;;;:::;+';';:,,::::.``.       `.,...:'''''''+##'''''''''+#+'';'''''''''''''''''+'+'''+++++++++''+++++'##++###++++#++++++++''''''+##++++++++''''
:,:;'';;;...,,,,::,;:,,.,,.,::;;;;;'':;;::;'''+;:::;;:::...,`      `,:,,::++'''''''#@+''''''##''''''''''''''''''''++++++++++++++++''+++++'++#++####++++++++++''''''''+++++'+++++++''
,,;;;':;;;.,,,:,,:,:;,....,,,::;;;;'',;;::;'';+',:,:;;;,,:,:```    `,::,:,;++''''''''#@+;+##''''''''''''''''''''''++++++++++++++++'+++'''++#+#++###+++++'+++++'''''''+++##+#++++++'+
.::;''';;'..,:,,::,:;,.`....,,:;;;;''':;::;''''',:,:;;;;:;::`    ``.,::::::+++'''''''''###'''''''+'''''''''''''''''++++++++++++++++++''++++#+++#+++++'''''++++''''''+++###+#++++++++
.,;;+;+;';..,,:,:::,;,.```...,:;;;;;''.;::';;+':,:::;;:::'::,.`````.::::;:;'++'''''''+'''''''''''+''''''''''''''''++++++++++#+++++++''++++++#'++++++';;':';'++'''''+++++++++++++++++
:.,;''+''';.,,:,::::;,.`````.,:::;;;;':.:;';;';,,,,:;;:::` .;,,...,:::::;,::+++++++'''''''''''''''''''''''''''''''+++++++++##++++++'++++++++#'+++++';;;;;,;'''+''''+++++'+++++++++++
:.,:+;'''';..,:::,::;,,.`````.,:::::'';.;;';';;,,,:::;;:,,:::,.,:::::;::;::;+++++++++++'''''''''''''''''''''''''''+++++++++#+++++++'++++++++#'++++';:;;;;:.;';++++++++++++++++++++++
:,,:''''''':.:::::::;,,,.````.,,::::;;',:';;';:,,,:::;,.,:;;;:::,:;;;;;;;:::;+++++++++''''''''''''+'''''''''''''''+++++++++##+++++++''''+++++'++++';;;;;;;:``;;'+++''++'++++++++++++
::,:';'''''',:::,:::;:,` `.``..,::::::'..';;':,,,:,:::,,::;;';;:::::;;;;';:::++++++++++''''''''''''''''''''''''''''++++++++#+++++++++''''+++'+++++;;;;;;;;;;`.;''+++''''+++++'++++++
:::,';'''''+:,:::::,:;,`.`` `.,,:::::::..::';,,,:,,,::::::;;':::::::;;;'';,:;++++++++++++''''''''''''''''''''''''''+++++++++++++++##++++'+'++++++';;;;;;;;;;;';''''++'++'''+++++++++
::::';';;'+'+:::::::,;,.',````.:::::::::.`:;:,:,,,,:::::::';'::::,,:;;;;'',:;;+++++++++++''''''''''''''''''''''''''+++++++##+++##############+++';;;;;;;;;;;;;'+'''+'''+'''++'+''+''
:::::;;;;''+;,;;;::;:',.::````.::::::;:;..;;:,,,,,,,:::;:;';';:,,,,:;;;;''::,;++++++++++++'''''''''+''''''''''''''''++++++###++##########++#++++++#+++;;:;;;'++++''''''''''''''''+''
::::::';;''+,,;:;;;;:',,,..``.,::::::;:'.'`;:,.....,,::;;:';';,,,,,:;;;''':;:'+++++++++++++''''''''+'''''''''''''''''+++++####++++++++++++#++++#+++++++++++++++++++'''''''''''''''''
:::::::;'''+,::;;:;''',,,..`..,,:,;::;:;.,::,....``.,,::::;;':,,,.,:;;;';';:,;+++++++++++++++++++''+'''''''''''''''''+++++#####++++++''++#++++#+++++++++++++++++++''''''''''''''''''
;::::::;;''',,:;;;;;;';;,.,..,,,:,:::;:;.```:.`.```..,::::;;'::,..,:;;;'';:,:::++++++++++++++++++++++''''''''''''''''++++#+#++##++''++++#+++++#+++++++++++++'''++'''''''''''''''''''
;:::::;;;''+,,,:;;;;;';;;:,..,,,:,:::;:;.`` :,.````..,::::;:';::,:::;;''';,;;,:++++++++++++++++++++++''''''''''''''++'+++##+++++++++++##+++++##+++++++++++'''''';;''''''''''''''''''
;;::::;;;''+:,,::;:;;;':,:::::.,:::::;::.`  :,...``..:::::::;;:,,,,,;;''':;:,,'+++++++++++++++++++++#'''''+++''''''++++++##++++++++++###+++++#++++++'+''''''''';''''''''''+'''''''''
;;;:;:;;;''+:,,,:;:;;;':::..:::::::;::::,`` .,.......::::::,:',,...,;;''';:,,.,'++++++++++++++++++++#'+''++++++''+++++++####+++++#+++##++++++++++++''''''+''';;;'''''''''''+''''''''
;;;;;;;;'''+;,,,:;::';';::,,,.,:;;;;::;::.```:.````..,:::::::;,.....:;'+':,,,.,,++++++++++++++++++++#''+#''+++++''+++++#####++++++++##++++++##++++''+++##+';;;;;;;';;''''''+''''''''
;;;;;;;;''++;...:::;';':::::,,,:::;';;;;;,.``:,````..,:::::::',```.,:;'+;;:,.`,;+++#+++++++++++++++##++@;++;#++++''+++++#####++++++##+++++++#+++++++++++#+;;;;;;;;;;;'''''''''''''''
;;;;;;;;''+''...,:;;;;':::,,:::::;;;;;''':...;,..```.,:::::::',.`...:;'';;:,.`,;+++++++++++++++++++###+,''''+++++''++++++++###++++##+++++++++++++++++++++';;;;;;;;;;;'''''''''''''''
;;;;;;;;''+;'....:;;;;;;;:,,,,,:;;;;;;';':::.;:,.....,,::::;:',.`.`.:''';;:,.`,::++#++++#++++++++++##+##+;:':++++++#####+++####+++++++'+'++++++++++++++++';;;;;;;;;;;'''''''''''''''
;;;;;;;;''++'.``.,;;;;;';:,,,,,::::';;''',.,:';,,....,,::::;:;,.....:+'''':,,.,::+++#++#+#+++++++++####+;::'++++++#######++####++++++++++++++++++++++#++++;;;;;:;;;;''''''''''''''''
;;;;;;;;''+;'.``.,::;;;';:,,,,:::;;;;;''',,:.:';,.,,,,:::::::',,...,;+''';::.,,:'#++#+++###++++++######'',,.#+++++########+####++++++++++++++++++++': ;+++;;;;;;;;;;''''''''''''''';
;;;;;;;;''+';.``.,:::;;':,,,,,:::;;;;;;;';:,,:;:;;:,.,:::::::;:,...,'+'';;;:,,:,;'++##+++###++++######+#;,.#+++++###############++++++++++++++++++''#``+++';;;;;;;;'''''''''''''''';
;;;;;;;'''+';,``.,,::::'::,,,::::;;;;;;;;;:,::;;:,:;:;::;:::::;,...,++'''';:,,:,;;+++#++++###++++######+++#++#+#+################++++++++++++++++'''',.#+++;;;;;;;;'''''''''+'''''';
;;;;;;;'''''::``.,,,:::;::,.,,,,:;;;;;;;;':,,,;;;::::;;;;:::;:':,.,,+++'''';,::,;;++++#++++###++++#####+'+++###++###############+##++++++++++++++++++;`++++';;;;;;'++'';;;;;''''''''
;;;;;;;;'''';:``.,,:::,:;:,,,,.,::;;;;;';':,,,;;::::::::;;;;;;';,.,,+#++''';:::,;'#+++##+++++###+++#####+++++#+++################+#+++++++++++######+@.+++++;;;;;;'+';;;;;;;;;'';'';
;;;;;;;'''+;:;``.,::::::':,.,,.,,:::;;;';':,,.;:::,:;::;;:;;''':,,:;+#+++''';:::::,#++++#+++++####+#####+++++#+#+#######@;######+++++++++++++######+++#'++++';;;;'';:;;;;;;;;;';;;''
;;;;;;;;''';;;``.,:,::;:',......,,::;;;';':,..:::,,,,::;;;;;;;';;;;'+++++''';:;:,;;,#++++++++++#########+++#############,:;#############+++#######+++++++++++'''+';;;;;::;;;;;+''';'
;;;';;;;''';;;,...,,::;:;,....``.,::;::;;;:,,,::::,,,::;;;;;;;':::;'#+++++'';;:::;',;+++++++++++########+++##+#########@`,.@##########+++########+++++++++++++'+';;;::;;;;;;;++++'';
;;;'';;;''+;;::..,,,::;:',,,````..::;::;;;;:,,,;:::,,::;;;;;';;;;:;'#++++++'';:;;;;:,+++++++++++#########++#############:``##########+++#####+##+++##+++++++++++';::;;;;;;;;'++++'+;
;;;'';;'''';;:,..,,::::,;;,.`````,::;:::;:;,+:.;:::::::;;;;;;;'';;;'+#++++++'';;;:;;,+++++++++++++#######++########+#####, #########++#########+++++++';:'++++++;:;;;;;;;;;''++++''+
;;;'';;;''';;,,:,,::::,,:;:,.` ``.,:::::;;'.:;`::,,::::;;;;;;''';:;;+##+++++'';;;;:;:+++++++++++++#######++##+#####++#####''######++++########+'''''++; .#++++++;;;;;;;;;;''''+++'''
;;;'';;;''';;,:.::::::::,;:....`.,::::::;:'.`.`::,,,,::;;;;;;;'';::;++#++++'''';:,::;++++++++++++++##+####++#######+++++++#++####+++#########+++++'''@ .```++++;;;;;;;;;'+++''''''''
;;;;'';'''';;::,,,:;:;::,;,...```.,,::::::;````:,,,,,::;;;;;;''';,:;'++#'''''';::,,.'++++++++++++++######@++########++++++##+###+++#########++++++++'':   `#+++:;;;;::;'+;++''''''''
;;;;''''''';;::,,:,;;;:;:;,,.````.,::::,:,:..``.,....,,:;;;;;''';,,:;++##''''';:,,,,+++++++++++++++++######+########++++++++##++++########++++++++++''+  ` `'++,'''+++++'++'''''';''
;;;;''''''';;;:,,:,::;;;:':,..```.,::::,:::,.``.,.....,::;;;;''';:,:;'++#+'''';,,..:;++++++++++++++++######+##########+++++++###++++####+++++++++++'''#```  #''++++++++++++'''''''''
;;;'''''''';;::,,,::;;:'''::,.``..,,:::,:;::.```,.....,:::;;;'';;::,;'++##'''';:,:'';++++++++####++++######++###########++++++###+######+++++++++'''''+`  ``''+'+++++++++++'''''''''
;;;;''''''';;:::,,,:;:;:;'':......,,:::,:;:;.`` ,......,::::;;;;:::,;;'++#+'''''''''''+++++++######++#######++###############++##########++++++++++'''',##+;.''+++++++++'+''''''''''
;;;;''''''';;::;,,:::;;;;;';:,..,,,,,::,,;:'.`` :,.....,:::::;;;,::,:;;+++#'''''''''':++++++++##+###########+++####################################++'+++++++++++++++++++''''';'';''
;;;;''''''';;:::,,,:::;;':':,:::,,,::::::::'`   :,.....,:::::;;;:,,,:;'+++#+''''''''';+++++++++##############+++##############++#@################++++++++++++++++++++#++'''''';';'+
;;;''''''';;;:::,,.:::;:';'::,.,:;;::::::::;.```,,.....,:::::;;;:,,,:;;+++++''''''''';:#++++++++#+###########++++++#########++++#############++++++##+++++++'++++++++++#+'''''';;''+
;;;;'''''';;:::::..,::::;;';:,,,,,::;;;:::::,.``..`....,::::::;;::,,,;;;++++'''''''''':+++++++++#+############++'+++++##++++++++#########++++++++++++++++++++'+++++++++++''''''';;++
;;;''''''':;::::;..,:;;:;;'::::,,::,:;;;;::;',..`,.....,:::::::',,,,,;;;#++++''''''''';.#+++++++++############+'++++++++++++++++#########+###++++++++++++++++++++++++++++''''''';;+#
;;;;'''''';;::::;..,::;::;';::,,::::;;::;;''+:`..;,....,:::::::':,,,:;;'##+++'''''''''',;##++++++++#+##########+#+#+++''''++++++#########++++++++++++''++++++++++++++#;++''';';''+++
;;;''''''':;;:::;..,::::;;;'::,,,,::;;:;;:''+:::.;:,...,:::::::':,:::;;;####++''''''''':.+##+++++++++##########+#:+'+''''''+++++############+++++++++'+++++++++++++++++++''';'''++#+
;;;'''''';;;;:::;.`.,::::';'::,,,,::::;;;:';',.::'':,,,,:::;;::::.,::;;'++##++''''''''';..###++++++++#+##########:++++'''''+++++############++++++++++++++++++++++++++++++'';;'+;###