À propos

Depuis 1995 et la création du net.art (net dot art) par Pitz Schultz, les œuvres web-natives sont devenues un incontournable de l’art d’aujourd’hui. C’est dans cette perspective historique et dans la poursuite des missions d’accès)s( sur la culture électro-numérique pour tous, que Melting Point* enrichit sa programmation IRL (expositions, projections, conférences et performances/concerts) d’une exposition virtuelle de référence : XX.

Pour réaliser XX, nous avons demandé à Thomas Cheneseau (artiste et commissaire indépendant) de nous accompagner dans une curation qui propose un retour sur plus de 20 ans de création web.

Ainsi, de Martine Neddam à JODI, de Claude Closky à Miltos Manetas, c’est une vingtaine d’artistes internationaux du World Wide Web qui présentent 20 œuvres web-natives qui ont marquées l’histoire des réseaux.

À travers XX, cette plateforme-exposition éditorialisée semaine après semaine, Melting Point* associe une nouvelle proposition au festival accès)s(, car XX est une réalisation curatoriale accessible à tous de partout ; surprise originale pour les 20 ans d’accès)s(, association pionnière et exploratoire sur des usages numériques toujours plus indissociables d’une critique citoyenne et artistique d’un “second monde”.

JJ Gay

Le site XX a été développé par Julien Bidoret, avec Kirby. L’asciiart est librement inspiré du code produit par l'équipe du médialab de SciencesPo avec Julie Blanc et Benjamin Gremillon et la contribution typographique de Léo Gaullier. Remerciements à Anaïs Lagarrigue et aux étudiant·e·s de 2e année Design graphique de l’École supérieure d’art et de design des Pyrénées.

.................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.....................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.....................:#@@@@@@@@@@@@@@@@@@@@
.................=+*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++===......................=++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**++==-.....................-++*##@@@@@@@@@@@@@@@@
........................+#@@@@@@@@@@@@@@@@@@@@#*.......................................+#@@@@@@@@@@@@@@@@@@##*-............=##@@@@@@@@@@@@@@@@@@@@#:......................................=#@@@@@@@@@@@@
...........................#@@@@@@@@@@@@@@@@@@:.........................................:#@@@@@@@@@@@@@@#=....................+@@@@@@@@@@@@@@@@@@=..........................................#@@@@@@@@@@@
............................+@@@@@@@@@@@@@@@@+...........................................#@@@@@@@@@@@#=........................-#@@@@@@@@@@@@@@@#...........................................*@@@@@@@@@@@
.............................*@@@@@@@@@@@@@@@+..........................................+@@@@@@@@@##:...........................-#@@@@@@@@@@@@@@#..........................................-@@@@@@@@@@#-
..............................#@@@@@@@@@@@@@@#.........................................+@@@@@@@@@*...............................+@@@@@@@@@@@@@@#:........................................-#@@@@@@@@#:..
...............................#@@@@@@@@@@@@@@=.......................................*@@@@@@@#+..................................*@@@@@@@@@@@@@@+.......................................=@@@@@@@@#:....
...............................+@@@@@@@@@@@@@@*......................................#@@@@@@#*.....................................#@@@@@@@@@@@@@@......................................*@@@@@@@#:......
................................#@@@@@@@@@@@@@#....................................=#@@@@@@#.......................................+@@@@@@@@@@@@@@+...................................:#@@@@@@#-........
................................:#@@@@@@@@@@@@@*..................................*@@@@@@#-.........................................#@@@@@@@@@@@@@#..................................+@@@@@@#=..........
.................................*@@@@@@@@@@@@@@:...............................=#@@@@@#=...........................................=@@@@@@@@@@@@@@=...............................:#@@@@@#*............
.................................-@@@@@@@@@@@@@@*..............................#@@@@@@*..............................................#@@@@@@@@@@@@@#..............................*#@@@@@#:.............
..................................*@@@@@@@@@@@@@#............................+@@@@@@#................................................=@@@@@@@@@@@@@@+...........................-#@@@@@#=...............
...................................#@@@@@@@@@@@@@+.........................=@@@@@@#-..................................................#@@@@@@@@@@@@@#..........................#@@@@@@+.................
...................................*@@@@@@@@@@@@@@:......................:#@@@@@#+....................................................-@@@@@@@@@@@@@@=.......................*@@@@@@*...................
...................................-@@@@@@@@@@@@@@+.....................*@@@@@#*.......................................................#@@@@@@@@@@@@@#.....................=@@@@@@#:....................
....................................*@@@@@@@@@@@@@#...................+@@@@@@#:........................................................=@@@@@@@@@@@@@@=..................-#@@@@@#=......................
....................................:#@@@@@@@@@@@@@+................-#@@@@@@=...........................................................#@@@@@@@@@@@@@#................:#@@@@@@+........................
.....................................*@@@@@@@@@@@@@#..............:#@@@@@@+.............................................................=@@@@@@@@@@@@@@-..............*@@@@@@#:.........................
.....................................=@@@@@@@@@@@@@@+............*@@@@@@#................................................................#@@@@@@@@@@@@@#............+#@@@@@@-...........................
......................................#@@@@@@@@@@@@@#..........+@@@@@@#-.................................................................+@@@@@@@@@@@@@@=.........-#@@@@@@+.............................
......................................-#@@@@@@@@@@@@@=.......=#@@@@@#+....................................................................#@@@@@@@@@@@@@*.......:#@@@@@@*...............................
.......................................*@@@@@@@@@@@@@#.....:#@@@@@@*......................................................................+@@@@@@@@@@@@@#-.....*@@@@@@#:................................
.......................................=@@@@@@@@@@@@@@+...*@@@@@@#:........................................................................#@@@@@@@@@@@@@#...+#@@@@@#-..................................
........................................#@@@@@@@@@@@@@#.+#@@@@@#=..........................................................................+@@@@@@@@@@@@@@=-#@@@@@#*....................................
........................................-@@@@@@@@@@@@@@@@@@@@@+.............................................................................@@@@@@@@@@@@@@@@@@@@@#......................................
.........................................#@@@@@@@@@@@@@@@@@@*...............................................................................+@@@@@@@@@@@@@@@@@@#-.......................................
.........................................=@@@@@@@@@@@@@@@@#:.................................................................................#@@@@@@@@@@@@@@@#+.........................................
..........................................#@@@@@@@@@@@@@@=...................................................................................+@@@@@@@@@@@@@@*...........................................
..........................................=@@@@@@@@@@@@@@*...................................................................................:@@@@@@@@@@@@@@#...........................................
...........................................#@@@@@@@@@@@@@@:...................................................................................+@@@@@@@@@@@@@@=..........................................
...........................................+@@@@@@@@@@@@@@*....................................................................................#@@@@@@@@@@@@@#..........................................
..........................................+#@@@@@@@@@@@@@@#..................................................................................=#@@@@@@@@@@@@@@@=.........................................
........................................=#@@@@@@@@@@@@@@@@@+...............................................................................:#@@@@@@@@@@@@@@@@@#.........................................
......................................:#@@@@@@@@@@@@@@@@@@@#..............................................................................*#@@@@@@@@@@@@@@@@@@#-........................................
.....................................*@@@@@@#+@@@@@@@@@@@@@@+...........................................................................+#@@@@@#+#@@@@@@@@@@@@@#........................................
...................................*@@@@@@#-..#@@@@@@@@@@@@@#.........................................................................-#@@@@@@*..+@@@@@@@@@@@@@@=.......................................
.................................=#@@@@@#+....:#@@@@@@@@@@@@@=......................................................................:#@@@@@@#.....#@@@@@@@@@@@@@*.......................................
...............................-#@@@@@@*.......*@@@@@@@@@@@@@#.....................................................................*@@@@@@#-......=@@@@@@@@@@@@@#:......................................
..............................#@@@@@@#:........=@@@@@@@@@@@@@@=..................................................................*@@@@@@#=.........#@@@@@@@@@@@@@*......................................
............................*#@@@@@@=...........#@@@@@@@@@@@@@#................................................................=#@@@@@@*...........+@@@@@@@@@@@@@@-.....................................
..........................=#@@@@@@+.............-#@@@@@@@@@@@@#-.............................................................:#@@@@@@#:.............#@@@@@@@@@@@@@*.....................................
........................-#@@@@@@#................*@@@@@@@@@@@@@#............................................................#@@@@@@#-...............=@@@@@@@@@@@@@#.....................................
.......................#@@@@@@#:.................=@@@@@@@@@@@@@@-.........................................................+#@@@@@@+..................#@@@@@@@@@@@@@+....................................
.....................*@@@@@@#=....................#@@@@@@@@@@@@@*.......................................................=#@@@@@@*....................+@@@@@@@@@@@@@@:...................................
...................+@@@@@@@*......................-@@@@@@@@@@@@@#:....................................................:#@@@@@@#.......................@@@@@@@@@@@@@@+...................................
.................-#@@@@@@#.........................#@@@@@@@@@@@@@*...................................................*@@@@@@#-........................+@@@@@@@@@@@@@#...................................
...............:#@@@@@@#-..........................=@@@@@@@@@@@@@@-................................................+@@@@@@#+...........................#@@@@@@@@@@@@@+..................................
..............*@@@@@@@+.............................#@@@@@@@@@@@@@*..............................................+#@@@@@@#.............................+@@@@@@@@@@@@@@:.................................
............+#@@@@@@*...............................-@@@@@@@@@@@@@#-...........................................-#@@@@@@#:...............................#@@@@@@@@@@@@@*.................................
..........-#@@@@@@#:.................................#@@@@@@@@@@@@@#..........................................#@@@@@@#=.................................+@@@@@@@@@@@@@#:................................
........:#@@@@@@#-...................................=@@@@@@@@@@@@@@+.......................................*#@@@@@@*....................................#@@@@@@@@@@@@@#................................
.......*@@@@@@#+......................................#@@@@@@@@@@@@@#.....................................+#@@@@@@*......................................+@@@@@@@@@@@@@@+...............................
.....*@@@@@@@#........................................=@@@@@@@@@@@@@@*..................................=#@@@@@@#-.......................................:@@@@@@@@@@@@@@#...............................
...*#@@@@@@@=..........................................#@@@@@@@@@@@@@@=...............................=#@@@@@@@*..........................................*@@@@@@@@@@@@@@*..............................
.+@@@@@@@@*............................................*@@@@@@@@@@@@@@#.............................=#@@@@@@@#-...........................................:#@@@@@@@@@@@@@@=.............................
@@@@@@@@@+.............................................=@@@@@@@@@@@@@@@#..........................=#@@@@@@@@#..............................................#@@@@@@@@@@@@@@#:............................
@@@@@@@@#..............................................-@@@@@@@@@@@@@@@@#.......................*#@@@@@@@@@@-..............................................#@@@@@@@@@@@@@@@#-...........................
@@@@@@@@#..............................................*@@@@@@@@@@@@@@@@@#-..................-*@@@@@@@@@@@@@-.............................................-#@@@@@@@@@@@@@@@@#+..........................
@@@@@@@@@*...........................................:#@@@@@@@@@@@@@@@@@@@@#=.............:*@@@@@@@@@@@@@@@@#............................................*@@@@@@@@@@@@@@@@@@@@#*........................
@@@@@@@@@@#*=:...................................:+##@@@@@@@@@@@@@@@@@@@@@@@@@#*=:...-+##@@@@@@@@@@@@@@@@@@@@@#+-....................................=*#@@@@@@@@@@@@@@@@@@@@@@@@@##+-...................
@@@@@@@@@@@@@@@@@@-........................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+........................:#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:............
@@@@@@@@@@@@@@@@@#.........................#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.........................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.............
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
--------------===-----===-----------=--=-----=------=-----------------=-----=-=-------=-=--=----------------=---------=----------=------=+-----------------===-===---------------:----=+=---------------
----===----===-=-------==-===----=-------=--------==------------------------====------==--------------=-----=----------=+------------------------------------=----=-------====-=======+=+---------------
---=---=-==----===-----===----------------=----===-==++=----++**==----=------====-----------------======-+===---=-------+===+-----------------==---------=+=+-=---=------======-==--==-+----------------
-------==---=-------=----------------=----==-====+=+==+=+-+===========--=-=-=----====--===+=+:::--======-=++----------=-==--===-:::---------=-=--------=--++=--==-=-----------==-------:------+---------
---=--==-==-=----=--==----==--=------------=--=-=+==--+==-=------=-=-=---=---------=-=----=+=--::---------==----------=----------:::--------:=-=---=-------------=-==-------==-----==---------++=-------
---=-=---=-------------=--------=--------=------==+----+=+---=--=-===---=-----------------------:---------=--==--=-----==-=----=-----------------=--=-----------=========-------=---+=-------=::==----=+
----=-------==------:----------*+*+==-=-===-=--+=+------===-----------=-=-------------------==-------------=--+=--------------=-=---------=----------------------==-=====--------=-+=+----------------=-
===----=---=-=====-==--=-=---------==---==-----==-------+=+------------=----------------=======--::--------=-+===--------==-------=---------------------------------=-+=--------===-=-----------------=+
+*==--==-==-==+=-----------------------=------+=+--------+-------------=-----------===========-------------++------------=+--=--------===+----=----------------------+**=-------===---------------------
--=--=-=---====------------------------==------+---------+=+---------=----------=========+=+==-------------+==----------=-----=-----=--++---------------------------=-=-------======-----------------=--
-----=---------=-----------------------------+=+---------=++----------=======---==========+===--------------=-----------------==-----=------=============----------------=-----------=--------------++=-
-------------===+=---------------------------=+=----------------------====================-===-----========--=------------------=-----=---================----------=----------------------=---------+--
------------====-==-------------------------=+=-----------====------=-=========================--------==---===-------=---------------==-=====---==-----==-=+---------=--=------=--------=--------------
=-------------------------------------------+=+------------++------=--=========================------------==-==----------------+++=-----------==--=---=---+=+--------=---==-===--======--=-------------
--------------------------------*=-----------=--+===--------------=---=======+===========+======----------::---#**+-----==-=----=-=-----=---------=---=*----+--------==--=--==---==--++--===------------
-----=------------------------=**=--------====---++--------===-------========+==========+++=====------------=+-:+=-------==--------------------:--==+=------:---------=--------------=--==-=------------
-------------------------------========----++-------------==++===================================----:-----=+++-+==-==---------------------====-=----==----------------=---==-----------====------------
------------------------=-------=========--------------==========================================-------::---=::::::-==--------------=+==---==--==-----+-----------------------=----------===-----------
---------------------========--===========+=+--====--============++=-===============================---------------::-=------------+==++=--==---------=-==-----------==----+=--=-=----------==----------
-------------------========================+=================++=====-===================================--------------=------------+=-=--========-------==-===-==========-+=*---=------------=----------
------------------=======================++-=================++===-====================++==================--------------======-=====-+=---::-------=-----=-=-=--=------=====----:-----------===--------
--=====-----------========================+========*##*+================================+============================-----------------------------------==-==-----==-----=:----==----------==-=--=------
========----=-=====================================+**+=======-===========================================================-----------===============----:--=-----=-==---=-+---=----------=-----=---=----
=====-=+=+==+=+=-=======*+*+*==========+=+====================+=+======================-=====================+=+======================================--===-+=+----====-=***=-=----------===---=---=----
=============+=+=========++++===========++--==================++==============================================+======================================--==++====---====--=+++----------==---=-====-==----
===+++=-=------=+======================+=----============-==================-====--===========================-==================================-======--=-=-=-===----=======------==-=-------=-==-=---
======-========-=+=+=================-+=+==--========================+++===-=-==----==++====----=====================================++=======-------=======-=-----====--===+-:----=+++==--=-===+-=-=---
================-=+=+===================-=---===========================------==---===++======-==========================-----------=++=======--==----------=-+====-===+==+====+=+=====-----------==----
=================-==++===============+=+===--==================+++=======-----====-====================================--------------=------=====-------------:----====--=--=-==-----=---------------:-:
==================-+=+=========-=====-+=======++=========================-----===============+========================----=---=-=#*==-=====----===----------+-=++++-+-==++==+==+==+===:----=------------
=====+=============-+===============+=+-========================-==========================++=================+=+=====-==----==-=+=--------======----------------:-=-===========--==-=----------=-=-----
==================++=+===============+===========================+================+=+-========================+++-==----==-----=++---------=-===--==------------::-=+=+=========-==-==----=====----==---
==========++=========-=============+=+============--============+=+=================+=+=========================-============-==+==------==----==-----==-------------+==========-======---------=------=
====+++=================+=========+==============----============+=================--+=============-------=====-====---:-+-------------====-------=====-====-----================------==+------=-------
=========================+=======++=+============----============-==============----=-============-----------====------==--==-------=--==-=-----------====-=-+-+-===--========-==-:-----------------==--
===================-====-=+==---=+======+========----====================+=====-------===========--=---=--------=****-=---+--+---=-==+==----==-------=========+=====--========----==--------=======-=-=-
=========================--=++=+===-==++===========-=============+=+=====++====---------========---=------=-----=+==+------++=-----=++-----=----=-------==-=-:-=-====+====-+==--=--===----=------=---===
==========================--==++=--===============================+============----=++----======--===------====-=-----------=-----------------------------=====-==------==-===-==--==+=--=-----=-----===
============================-==-==================================-=============---+++-----===----=------==----+=+----------=---=----=------===-==---==-====--==---:--===+++++=+=-+=+=----------=--==---
================================================================================----=------------==--===--------+--=-=-==------------=-+**=--==-===-==--========----===-=-===-====-+=---==--------=-----
=========================--=======================================+=+===========----------------==-=-----------=-==---===---------=----=**--=-===----===***==--=--==-=---==---=====---====-=##*==---===-
-----------==============-=========================================+===========----------------=+=--------------------===-=++=-------=--=-----=---=--===+++===-===--==---==---===-===----==+***=--------
--------------============-========================================-===========---+=+-=-===-=====---------------------=--------------=#*------=====-----=++-=---------=--========---=---==-=------------
-------------------============================================================---=+=-=+=-----=-----=+==----------=-++--------=*+--===#+====----------==-=---=------------==--==------====--------------
:---:------:-----------======-----===============+*================+=+==========-----====--------------------=-----====-=====-+++-+=+--=-==---====-----=-----==+=============-------=--==---=--=--------
-=-=------===-=---------------------=============*+=*+===========================--:-===----===-------------===-+=+=-=---------===-+==------=-----=--=-----=--+=+===--=---=---------===-----------=-----
-----------:=------------------------=============================++=+==========-=+=--=----==---------------==---+=---::::-----------=-=----=-=--=--===-=------+-===-------------:==--=----------=---==-
-------==--=---------------------------============================+============-++=-=-=------==--===---------------=---==----===-=---===---------=--=--==--===-+++=---------==--=-=--==-=-===----------
----=--------=--=----=---==---------------========================-==++=========--=--=-----------=-----------=---------=------=-=------------------=====--=-==---===========-----===--=**+++----==------
=-=---=-----==---===---===-==-----------=--------------========================--::----====------------------=====-=----=--------:=---:-----------===--=-=====-=-=---==-----------++-------==---==------
===*+*+==--=------------=-----=======--==+------------------------===========--=+=+==-----==--------------------==---===-------====-==-----==-------------==--===------=-===---=-=++=-----====--------=-
----------=======------=+------=++++===-+=------------=--=-----------=++=-------=+=--=------=--===--====--======--------==-=--=-==+=-=--+--==--===-------------=-----=--==--=-----=--------=+-=-======-=
-------==-=--=-===========--=-=--------=---=====--------------===-------------------=-=---=--=++++=-===-===+=-+--+=+=-==========-+=+==--==---==-=-==-----=--------------=-------=------------==---------
-------=-==----=------------==---------=---=--==---=====------++++=----+==-=-=====-==-===-==-=-==-=---==----==---=+==--===-=---=--+-=-===------=====-------------=-----=--------------------==---=------
-----====-=-==---==-=--=-=-=---+=+----==-=---------==---------==-------++=-----++------++=--==---==+---==----------=---=-------==-------===----=----------------=-----++=----------------------==----===
---=-=--=-==--==-=====-===-----=-=----------===----=-======-------------+==--====-+**+:=---------=+-------=--------------====---------------=-------=-===---==-+=+=----+=---------=--=-------===--------
------==-=--=-=====-==------=------------======-==-=------===+=--+------+=+--==+=--------:---------===*+*--------------=--==-----------------------=-----==-----+=----------------=------------===---=-=
----=====---==-=-======---=--------------------=---=-----==---=---+=-----+==+===--=--=---------------=**+-------=--------==--------------===-------------=---===-------------=---==-----------======--=-
=--=+-==-==---==----==-==---------=--------=--------=---===---=-----+====:++++--------------------==---=-----------++-----------=+----------=------------=---=-----------------------------------------=
---==---=--------====--===-=------==------------------==-=----=------==++=-==--------------------------=----------=++=----------+=+----------------------=-----=------===-==--------------=-------------
-==--===-------==-==------=---------------------------*=++#*-------------+=------------------==--------------------==------------+------------------------==--------------------=+=-------=-------------
==---===------=-=----:--===-=-=---=--=--------=---------=++++--=------------=-----------------=--------=---=-----------==--====-------=---------------------------------------=-+=+---------------------
----=-----====-==-=---------====------------------=+=----===---------------------=-=--==--------------------------------==------------------------===---=----------=-----=-------=-===------------------
----------=---===---------------------------====--===---=-----------------=------=====-=------------=-------=--=----------------------=------------=----=--------==-----==-------:=-=--==---------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*###################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########+*#########################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########==-=##*-=##=+=#=-+#########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:+.==.#.##:==:-########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:*.**=#.##-=#=*########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+++++++++++++++++++++++===========================----------------------------------------------------------------------------------------------------===========================+++++++++++++++++++++++
++++++++++++++++++++++==========================-------------------------------------------::::::::::::::::::-------------------------------------------==========================++++++++++++++++++++++
+++++++++++++++++++++=========================--------------------------------------::::::::::::::::::::::::::::::::--------------------------------------=========================+++++++++++++++++++++
++++++++++++++++++++=========================----------------------------------::::::::::::::::::::::::::::::::::::::::::----------------------------------=========================++++++++++++++++++++
++++++++++++++++++=========================--------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------=========================++++++++++++++++++
+++++++++++++++++=========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------=========================+++++++++++++++++
+++++++++++++++++========================----------------------------::::::::::::::::::::::::::::------::::::::::::::::::::::::::::----------------------------========================+++++++++++++++++
++++++++++++++++=======================----------------------------::::::::::::::::::::--------------------------::::::::::::::::::::----------------------------=======================++++++++++++++++
+++++++++++++++=======================---------------------------::::::::::::::::::----------------------------------::::::::::::::::::---------------------------=======================+++++++++++++++
++++++++++++++=======================--------------------------::::::::::::::::------------------------------------------::::::::::::::::--------------------------=======================++++++++++++++
+++++++++++++=======================-------------------------:::::::::::::::------------------------------------------------:::::::::::::::-------------------------=======================+++++++++++++
++++++++++++=======================------------------------::::::::::::::------------------------------------------------------::::::::::::::------------------------=======================++++++++++++
++++++++++++======================------------------------:::::::::::::----------------------------------------------------------:::::::::::::------------------------======================++++++++++++
+++++++++++======================------------------------::::::::::::----------------------==================----------------------::::::::::::------------------------======================+++++++++++
++++++++++======================-----------------------:::::::::::::------------------============================------------------:::::::::::::-----------------------======================++++++++++
++++++++++=====================-----------------------::::::::::::-----------------==================================-----------------::::::::::::-----------------------=====================++++++++++
+++++++++======================----------------------::::::::::::---------------========================================---------------::::::::::::----------------------======================+++++++++
+++++++++=====================----------------------:::::::::::---------------============================================---------------:::::::::::----------------------=====================+++++++++
++++++++======================---------------------:::::::::::--------------================================================--------------:::::::::::---------------------======================++++++++
++++++++=====================----------------------::::::::::--------------=====================++++++++=====================--------------::::::::::----------------------=====================++++++++
++++++++====================----------------------::::::::::-------------=================++++++++++++++++++++=================-------------::::::::::----------------------====================++++++++
+++++++=====================---------------------::::::::::-------------===============++++++++++++++++++++++++++===============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------::::::::::------------==============++++++++++++++++++++++++++++++==============------------::::::::::---------------------=====================+++++++
+++++++====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------====================+++++++
++++++=====================---------------------:::::::::------------=============++++++++++++++++++++++++++++++++++++=============------------:::::::::---------------------=====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++**********++++++++++++++============------------::::::::::--------------------=====================++++++
++++++====================---------------------::::::::::-----------============++++++++++++****************++++++++++++============-----------::::::::::---------------------====================++++++
++++++====================---------------------:::::::::------------===========+++++++++++********************+++++++++++===========------------:::::::::---------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++*******########*******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++******############******++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****######@@######*****++++++++++===========-----------::::::::::--------------------====================++++++
+++++=====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------=====================+++++
++++++====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****##############*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++******##########******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============+++++++++++*******######*******+++++++++++============-----------::::::::::--------------------====================++++++
++++++====================---------------------:::::::::------------============+++++++++++******************+++++++++++============------------:::::::::---------------------====================++++++
++++++====================---------------------::::::::::-----------============+++++++++++++**************+++++++++++++============-----------::::::::::---------------------====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++++******++++++++++++++++============------------::::::::::--------------------=====================++++++
++++++=====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------=====================++++++
+++++++====================---------------------::::::::::-------------=============++++++++++++++++++++++++++++++++=============-------------::::::::::---------------------====================+++++++
+++++++=====================---------------------::::::::::-------------==============++++++++++++++++++++++++++++==============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------:::::::::::-------------================++++++++++++++++++++++================-------------:::::::::::---------------------=====================+++++++
++++++++=====================---------------------:::::::::::-------------===================++++++++++++++===================-------------:::::::::::---------------------=====================++++++++
++++++++=====================----------------------:::::::::::--------------================================================--------------:::::::::::----------------------=====================++++++++
+++++++++=====================----------------------:::::::::::--------------==============================================--------------:::::::::::----------------------=====================+++++++++
+++++++++=====================-----------------------:::::::::::---------------==========================================---------------:::::::::::-----------------------=====================+++++++++
++++++++++=====================-----------------------:::::::::::-----------------====================================-----------------:::::::::::-----------------------=====================++++++++++
++++++++++======================-----------------------::::::::::::------------------==============================------------------::::::::::::-----------------------======================++++++++++
+++++++++++======================-----------------------::::::::::::---------------------======================---------------------::::::::::::-----------------------======================+++++++++++
+++++++++++======================------------------------:::::::::::::-------------------------==========-------------------------:::::::::::::------------------------======================+++++++++++
++++++++++++======================-------------------------:::::::::::::--------------------------------------------------------:::::::::::::-------------------------======================++++++++++++
+++++++++++++======================-------------------------:::::::::::::::--------------------------------------------------:::::::::::::::-------------------------======================+++++++++++++
+++++++++++++=======================--------------------------:::::::::::::::----------------------------------------------:::::::::::::::--------------------------=======================+++++++++++++
++++++++++++++=======================---------------------------:::::::::::::::::--------------------------------------:::::::::::::::::---------------------------=======================++++++++++++++
+++++++++++++++========================---------------------------:::::::::::::::::::------------------------------:::::::::::::::::::---------------------------========================+++++++++++++++
++++++++++++++++========================----------------------------:::::::::::::::::::::::------------------:::::::::::::::::::::::----------------------------========================++++++++++++++++
+++++++++++++++++========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------========================+++++++++++++++++
++++++++++++++++++========================-------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------========================++++++++++++++++++
+++++++++++++++++++=========================---------------------------------::::::::::::::::::::::::::::::::::::::::::::::---------------------------------=========================+++++++++++++++++++
++++++++++++++++++++==========================-----------------------------------::::::::::::::::::::::::::::::::::::::-----------------------------------==========================++++++++++++++++++++
+++++++++++++++++++++==========================---------------------------------------::::::::::::::::::::::::::::---------------------------------------==========================+++++++++++++++++++++
++++++++++++++++++++++===========================------------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++
++++++++++++++++++++++++===========================--------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++++
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
******************************************...***********************************+..+**************************************..=******************************..:******************************************
******************************************...*********************+*******++****+..+*+*************+****+*****************..=*+*******++*********+*********..:****+*************************************
******************************************...*****..:*+..-*=..*:......*+......-*+.......+*****=...........:*...**-..******.......+*=......+*.......:**:......:*-......**********************************
******************************************...*****+..+....+..-**+*+-..+=...-+***+..=**..-*****=..+*-..+*-..*+..+*..=******..-**..:**+**=..-*...**-..*-..***..:*...:=+***********************************
******************************************...******:....-....**...::..+*+:.....*+..+**..-*****=..+*-..**-..**:..:..*******..=**..:*:...-..-*...**-..*:..***..:**=.....=*********************************
******************************************...*******...=+...=*+..-+...+-..=+-..*+..+**..-*****=..+*-..**-..***....+*******..=**..:*..:+-..-*...**-..*+...=:..:*..:++..:*********************************
******************************************-:=*******+:-**=:-***+...+-:+*+-...=**+::***-:+*****+::**+:-**+:-***+..=********::+**-:=**-..==:-*=:=**+:-***-..==:=**=...:+**********************************
************************************************************************************************************=....***************************************************************************************
************************************************************************************************************+==*****************************************************************************************
********************************************************************************************************************************************************************************************************
***********************************************************************************************************++*******************************************************************************************
**********************************************************************************************************=..*******************************************************************************************
**************************************************************=...+**:.+***:.+*+:..-***-.=..:.:***+.:*****=..=..:+***+:..:+**+..***:.+*-.=:.-***********************************************************
************************************************************+...=...*:..**:..*-..--..+*.....+..-**..-*****=...=...+*...::...*+..+**..=*.....=***********************************************************
************************************************************-.......+*..:=..+*........*...***+..+:..******=..**+..++..+**+..=+..+**..=*...**************************************************************
************************************************************=..+*+=+**+....=**..:**=++*..:****-....+******=..**+..++..=**=..++..+*+..=*...**************************************************************
*************************************************************:.....-***=...***+......+*..:*****...-*******=..**+..+*=......=**.......=*...**+..+********************************************************
***********************************************************************************************...******************************************************************************************************
*********************************************************************************************....*******************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
++==++=-++===-==========+++++===++++++++++*****************************+++***+++++++++***+********++++++++++***+++++++++++++++====::..:====-::-==+++++====-::................................:---:::::::
+=====-=+===--=====+++++++++++++++++++++++++**************************++++***+++++++++++==+*+*++****++++++++====+++++++++++=++===+=::..-===-:-:=++++++=====-::.................................:::-:::::
======-=====-=======+++++++++++++++++++++++++************************+++++***+*+++++=++++*++=-.:--=-:.==++++=-==--==+++++++=++===+=-::..==--::::=++++++=====-:....................................::::::
=====-====------=====+=++++++==++++++++++++++**********************+++++++***+++++*+*+*+++..::..:............=.:=:=---=+==++++=====---..-----:-::=+++++++====...::::.................................:::
==-==--==----==-:==:++:++++++=++++++++++++++++*********************++++++***+++++**++++=:...:.........................:-+====++=====--..:---=---:-=++++++====..--::::...................................
=--=-:===--:---=:=+.**.:.:--==++++++=+++++++++*********************++++++***+*+***+=-::..=*:-=:....:......................:.::=+=====-:..--=====---=++++=+=+...-----::..................................
=--=--===--:.--............:..-=++++++++++++++*********************+++++********+==-=++****+===-.....:--.:==-:...............-=++-===-:..:-==+==-:-===++==+...===-----:.................................
=--=------...........-:......::.-=+++++++++++**********************+++++******+==++*********+======-=---:=++++=:..........-==++=+====--..:==++===---=-=+++-..-=====----:................................
----:---.................-::=+==-:.-=+++++++++*********************+++*******++**************+=-------:-+***+++=.........:--==++++====-:..-++++==---=-:=+=...=======---:::..............................
----:..................:----++++++**===+++*************************+++******+++++++++==+********+++==++***+=:...:....::.===++++++++-=---:.-++++===--==-:-...=+=========--::::..:........................
---=.........:-....::.:--:-+**+****+++++***************************+++*******************+-+-+=.++-:.:---:.......==++++++++++++++++=-----:-++++===---=-....-++++========--::....:.......................
==--......:-==+=:...:::::=+++++=+++===++*************************************************++=-=-++==...:.----=--:.+++++++++**+++++++==-=--=-=++++===-===....-++++=========--::....:......................
=--:.......-==+++===-==+=::::==+++++++*******************************************+******++++=+*+=++-:+==+++++*++=+**********++++++=========-++++======....---=++==========---:..........................
--............:::.:...:.==:.+++++++++++******************************************+++*******++*****++************+***********+++=-::........-*+:.:====....:==--==+===--=====--:-:........................
-=-..:--.......-:--:..:-=+=-=++++++++++********************************************+**++*********+***********+++=-:.........................:=.....==.....:-=--=======-=====--::::..::..................
==---======::===--++=-==+++++++++++++++***********************************************+++===--::....................................:----===--==-..-:.....:-==-========--====--:...::::.................
=====+++++++=++++++++++++++++++++++++*********************************************+=:..............................:::::----================------........-=--=========---====--:...::::................
===++++++++++++++++++++++++++++++++**************************************+:=#***...........:::-----======++++++++++++++++++++=====++++=======-==-.......+--=----========---====--::.:.:::...............
------::::.....................-**-==+********=...-********************#.....+:...-++**************************++++++++++++++++++++++++=====--==....:-=+====---========----=====--:.:..:::..............
...............................:*#:..==.:=***=..=..==******************..=#....:**************************************+++++++++++++++++====-:..=+++==-======-----=======-----===---::.::::..............
:::::::::::--:-:---------=======+===-:......:..***+.=.#***************..=**...:+************************************+*++++++++=======++-..-=::=++=====-=+====-----=====-=----------::::::::.............
================================++++++++==:...:=****:.::************-..+***=:.:*+***********************************+++++++=====-::.:-=++===-:-=+++===---=+===------===--=---::-----:::::::.............
===================++++++++++++++++++++++++++-.=******:....-++++=:...=*+++****+:-+*********************************+++++==-::.:---===++++++==:-========---=++===----====--=--:::::--::::::::............
+++++++++++++++++++++++++++++++++++++++++*+-..=**+*******=.......:+*++++++++++++++++++=======+++*********+++==--::::::------======++++++++++=-============-=+==-=----====--=-:::::::-:::::::............
=====++++++++++++++++======+++++=--:...:-=+**+++++++**********+*+++++=================---------::::::::::::--------==========++++++++++++++==--=+======-:---=+===-----===-:----:::::::::::::............
...........::::::::...........:-=+**++++++++++++++++++++++++++++++=======--------------------------------=======++++++++++++++++++++++++++++=--========-:-::-=====-::-====------::::::::::::............
-::::::::::::::::::::.::::::---===+++++++++++++++++++++++++++=======------------------------=========++++++++++++++++++++++++++*++++++++++++=--========---::--====-::-=====------::::::::::::...........
======-------------:-----------===+++++++++++=++++++++++=============-----------===========++++++++++++++++++++++++++++++++*****++++++++++++=:-=====-==---:::--=+==-::-======-----::::::.::::...........
=====================--------======+++++=============================-=----=--===++++++++++++++++******+*+++++++++++++++********++++++++++++=:=+=====-----:--:--=+=-:.:-=====------:::::................
================================================================================++++++++********************++*+++++**********++*+++++++++++=-=+=====-----:------====:::-=======----:::::::.............
==+++++++++++++====================================================+=++++=====++++*********************+*********************+++++++++++++++--+++====----------:-=====----=======-----::::::............
++++++++++++++++============================================+++++++++++++++++++++****************************************+***++++++++++++++=-=+++====-------------=====--====-====-----:::::............
+++++++++++++++========================================++++++++++++++++++++++++++*********************************************+++++++++++++==+++++==--:-----===---===--=--====-==-------::..............
+++++++++++++++++==+==============================++++++++++++++++++++++==++++++++********************************************++++++++++++=-=+++++===-::---====----==---======--==-------::.............
+++++++++++++++++++++++++========================++++++++++++++++====-====++++++++********************************************++++++++++++=-=+++++===-::--=====-----=-:---====------------::............
++++++++++++++++++++++++======================-=++++++++++++++++==:....:=++++++++********************************************+++++++++++++==++++++===--:--=====-------::--=====----------::::...........
++++++++++++++++++++++++++++====++++++=+++===....=+++++++++++++=-==:.:===+++++++*******************************************+++++++++++++++==++++++===--:--=======----=---======----------:::::..........
+++++++++++++++++++++++++++++++++++++++++++++++==+++++++++++++=+++++=++*++++++++**********************+--++***************+++++++++++++++===++++++===-----=======-----==========----------:::::.........
++++++++++++++++++++++++++++++++++++++++++++++*********++++++++++*+++++++++=++**********************=:....=+++++****++****+**++*+++++++++==+++++++====----========--=-======----=--------::::::.........
++++++++++++++++++++++++++++++++++++++++++++++********************+++++++++***********************+=-::-....++++++**+++++++++++++**++++++=++++++++=--=---=========--=-======----==--------:::::::.....:.
+++++++++++++++++++++++++++++++++++++++++*************************+++*+++************************=:......+:...:++++++++++++++******+++++++++++++++=--=---===================---===---:--::::::.::.....::
++++++++++++++++++++++++++++++++++++++********************************************************+=--::.......+=...+++++=-.:++++*****++++++++++++++++=--==-===+======================---::-:::::::::::.::::
+++++++++++++++++++++++++++++++++++++********************************************************+=---:::.:--...=+...=-:..-+=+++****+++++++++++++++++=-:-=====+=======================------::::::::::::::::
+++++++++++++++++++++++++++++++++++*********************************************************++=---:::::-=+...::....==-==+++++++++++++++++++++++++=-:---===++====================-------:::::::::::::::::
+++++++++++++++++++++++++++++++++++********************************************************++==---:..:--:........-===++++++++++++++++++++++++++++=::---=========================-------:::::::::::::::::
++++++++++++++++++++++++++++++++++********************************************************+++=----............:=-===++++++++-..:=++++++++++++++++=::--===++====================---------::::::::::::::::
+++++++++++++++++++++++++++++++*********************************************************++++==---:...........+===+======+++:+-...-=:++++++++++++=-::--===++==========+========----------::::::::::::::::
++++++++++++++++++++++++++++++++*****************************************************++++====----...........=+==+=====+++==..-....=+++++++++++++=-:-=====+====================----------::::::::::::::::
++++++++++++++++++++++++++++++++**************++******+***+**********************+++++======----::............:==-====++=+++=...-++++++++++++++=-:--===++++================-==-----------:::::-:::::::::
++++++++++++++++++++++++++++++*++++****+++++++++++++++++=+++====+++*++*******++++++=======------::.............----==+=====++==++++++++++++++++=----==+++++===============---=----------::--::--::::::::
++++++++++++++++++++++++++++++*++++++++++++++++++=======---------===+++++++++++++=====-----------:............:---=+==+====++++*******++++++++=----==++++++======++======-::-==------------:-----:::::::
+++++++++++++++++*++++++++++++++++++++++++++======-=-------:::::---:-----===========------------:::...........=---=======+++++++********+++++==--:-==++++++============---:-===-------------------::::::
++++++++++++++++++++++++++++++++++++++++==--:--=----:::...::...:--:::::..:::---------------------::............:-----=====+++++********+++++===---==++++++======+==+==-------==--------:-------:::::::::
+++++++++++++++++++++++++++++++++++++==-:..........................................:-------------.................===....--=-=++++***+++++++==---==+++++++=====+++====--:---===--------::------:::::::::
++++++++++++++++++++++++++++++++++=---:...............:.:----........................:-------------:......::.....-==++=.........:+++++++++++==--====++++++====+++=====-:--=====-------:::----:::::::::::
+++++++++++++++++++++++++++++++++=-::...........-=======+++==----:::....:...............:--------------:-:::.....---=----::....+++++++++++++==-=====+++++======+=====--:--======-------::----:::::::::::
+++++++++++++++++++++++++++++++=-.........................................................------------------:....-----=====+++++*++++++++++==--=====+++======+=======-:--====---------::----:::::::::::-
+++++++++++++++++++++++++++++==-....................::::.:.:::-----::::::.................--=========-------....:=++++++++++++++++++++++++==--======++==============----===-----------:-----::::::::::::
=++++++++++++++++++++++++++++++=--................:..::::....::::-:.:...................::-===================++++++++++++++++++++++++++===----====================----==----------:-------::::.::::::::
=++++++++++++++++++++++++++++++++++=-:..........:::.::::.....:.:::::...............::-=====+++++++++++++++++++++++++++++++++++++++++++=====----==+================----==------------------:::...::::::::
-=+++++++++++++++++++++++++++++++++++++=-::...:----:-----.::::-------:::::::.:---====+++++++++++++++++++++++++++++++++++++++++++++++++====----=====+==============--==-==----------------:........::::::
:=++++++++++++++++++++++++++++++++++++++++==+====+=====--=-===--===-=-=-=========++++++++++++++++++++++++++++++++++++++++++++++++++++=====--=====================---==-==---------------:.........::::::
.-==++++++++++++++++++++++++++++++++++++++++++++++===---::::::::---===========+++++++++++++++++++++++++++++++++++++++++++++++++++++++====--=====================----=--=---------------:..........::::::
.:-==+++++++++++++++++++++++++++++++++++++++++++++================+++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====-=====================---=-------------------:............:::::
#######**#**+++=+*#*+===========++##****#+----+***++=--=*******+++==********************************+++********+++==============+==========------=======+++++++++++++++++++===-----=++*#################
#######***##****+===++========+++**#+++#=---=****++=:+**++****=====+*******************************+********+++++**#*+=-:......................:::---=======-------===+++++++++++++++==---==+**#########
########**+*+++===++=======--=++*#**++-::::-+++++=-..-*###**+=+====+*+++==--::.........:-+**********#*****++++**#+..............................................::-====-------==++++++++++++==----=+*###
#########*###**************+++**++*+:----:-====-::...:=+++***+=====-.....................-***************+++***.............................................................:-===-----===++++++++++===--
########***#*+**#**#****++*+***+++==:----=+++=-:-...:---=====+++===-.....................-***************+***:......................................................................:---------==++++++++
#######*****=+===+****++++****=+==+=:---=+*++=::==------------=++=--.....................+*********#****+***.....................................:::.......................................:-==-----==++
#**#####*==+++==+*+++**#*+=-===+++++=-=+***+=:-***++------------=++=.::::::::::.........:*******###*#*****+...................................:::.................................................:-=--:
#########++*+=+==+++++***+++==++****+##***+=--####**+:......::---=+=.::....::...........+*******#*********............................................:........................:........................
########*++++++--=++++*#***++=+++***+*+**+==-***+++==-.........-====.::...:....::......-#*******#********::..................................................................:....:-::=-:...............
#########*+++++=---===+*###**+====+##**+===-=+++++++==......::::-==-............:.....:********##********.:....:..............................................................::..............::........
#**#######*++++*+--++++******+======+*+===-=+++++++=-.:-:--::::--==-....:.:::.:.......=***********#*****=:.....:.........................................................::.....:...................::..
###########******=--+====++++**+***+++===-=*++=:.....:.-=--::..:===-..::::::::::.....:*****************#-:....::.................................................:.:::..:::.................::--:.......
###########*******+:--====++******++*+*++#=...:....-==--::.....-==+=::::::::::::.....+*********#**#*****::....-:......................................................::----...:--.:::.::::::::--:-...::
-----------------========--:..--:....:::::::::::-========-:--:::---::::::::----.....-*************#*****::....=:...................................................:------:..:---:::::--:::--===.::--:.:
-----------------=+++===--:..--:....:::::::::...:======--::--.:::--:::::::::::-.....********************::....=:..................................................::.:-----.:==---=:.::---==-::..:.:---:
-----------------======--...::::.::::...:--:::::--====-:::::..::---:::------:-.....=********************.:....=:....................................................:-==-:.:----==:.....:-======-:------
=---------:::-:-======--:....::---:..........:::::-=--:::::..:::--:::====---:.....:*********************.:....=-.::....................:::........................:....::....--=-.............:-========
--=====:-::::::========:-==-------:.......::::...-+--:::::..:::::::-=======-:.....+********************+.:....=-.:::........:..:...::::...........................::....-=:.--=......:-:-..-:-===---=-::
.:--====-::::::=========-----::--:::............::=+-:::::..:::::-:-======--.....:*********************+.:....=-.:::::======-::::.................................::-...:-=:=-...:-=---:=::.===-=+++++==
.:::--====::::--========--:::-::::...:..........::-=+::::...::::---:-------:.....+*********************+.:....+-..:::--========--:................................:::-..:==:.-..::-==-=::..-==-++++-:--=
.:::::--===::.-========--::::::::..:::...........::-+=:::...:::----::-----:.....-**********************=.:...:+-.::.....::-=======-......:........................:----.:===-...:...-++=*..-:=+++-..:=++
.:::::::----..-=========--:::::...::::...........:::-=-:....::-----::-----:.....+**********************=.:...:+=...-====--..:-======:................................................-++=++--=++:....:::
.::::-:::---::========---::::....::::.....::......:::-=:...:::-----:::----.....-***********************=.:...:+=..:--====++++::-=====-............................::-:.....:::.......:=+==+++++--...:.-+
:.....-::::::--=====------::.:::::::......:::.....::--=+-..:::-----:::::::.....************************=.:...:+-......:--=+++++-:=====-...........................-=====:...:-:...:...-+==+=++-..**+*+*+
:.....:=-::::--==-=====----:::::::::.....::.:....:::---==:.:::------:::::.....-************************=.:...:+=----.....:-==++++-==++=-..........................-------:..---...:...-===+=++=----=::==
:.:::.::=-:.:-=======-----:::---::::...:::::::..::::----==.:::-----:.:::......*************************=.:...:+=:=:........:-=++++-=++==:.........................===----.::-=:=.....:-======::-..::--=+
::::::-::-+::-=-===-------::-------:..::::::::..::::-----=:.::----=-..::.....=*************************+.:....+=.........:--::-====.=+++-.........................-:::...:.---=:-=..::::--==::....:-::==
:-::::==::-++=====--------::-------:.:::::::::..:::------=-.::---====-.......*+************************+......+=..........-==-.----.:-===.................................:-=-=:---...:--===++++++=--=++
--::::-==:::=++======----::--------:.::---:-::..::---------.::---=====-.....=***************************......+=...:::.....:=-..::....---................................::--:-.::=....::::::-:--=++*+==
:-:::--==-:::-+*+=-==---::---------:.:------::..::---------=--::-=====......****************************......++...:--:..........--.....................................:::..:-.::-.......::::::::--=+*-
::-::--===:-=--+++++=-=-::---------::--------:..::--------==--:::-=-:......=**++*******************+****:.....==-+:=++=-...............................................:::...::.---........::..::::::-=+
-=-------=:--=--++++===-==-----=++*-:--------:.::----------==-..::=-.......++++++++++**************++***-.....-==-:++=+++=.................................................:::..::-=:..--.:--:-::....:-=
+=--------:---=--+*+*++++=+=--+******--------:.::--==--=-===:..::==-......=++++++++++++************++***=.....-=-:=++++++==+:.........:....................................---+-..:-:...::::.....::...-=
+==-------::-----=+*****+*+++++++****+-------:.-=+========-:..:::---.....:*++++++++++++***********+++***+.....:=-:.:::=======:......::..................................--:.:--===---...:::--:.........:
======---:.:------=****+**+*++++++++++=--============+==:--::::::--:.....++++++++++++++*******+***++++**+......=-.-+=+-.:--==--=++=-.....................................:---::--==+-......-----:.....::
=====----:.::-::::-+****+++++++=++++++===+++=====++===:--:::::::---:....=++++++++++++++**+*++++*+++++++++......=-...=+++=:--==-==-:.-......................................:---::---=+......:----:......
===------:.::::::::-****++=+++++++=+++==+++++++++++=---::::::::::--:...=++++++++++++++++++*++++++++++++++:.....-=....-===::===-:.::--........................................---:.:---=--=+==++-=-..-===
===------:..:::::-::=***++=+++++++++++-=++++++++=-::::::-:::::-::--:..++++++++========+++++++++++++==++++-.....:=....:-==-.====-.+==:..........................................---:.----:-+=++=++=-----:
==-------:..::::-:::-++*+==++++++++++=-=++++*+--:-:::::-:::----=----+++++++===========+++++++++++++==+++++......=....:-==-:=+==-=++=:.....................................::----:.:====-:==+--+++===-:--
==-------:..::--------+++=+**++++++++-=++*+=::::::-:::-:--------=:-=+++++=============++++++++++++++=++++*:.....-:..:--==-:=++=-=++-:.....................................-:::-==-=++=:=-=+=+=---+=--===
==--------..::--------=++=+**+++++++=+**=--::::----::--------------=*++++=============+++++++++*+++++++***=.....:-::-====--++++-=++--:...........:........................:====::+++--==...:..+++=======
==--------...:----==---++=+**++++++=++=-::::-------::--------------=*******++++=+==++++*+**+++**+*+++*****+......-:-=====-=+*++-=+=--......................................---=-=++-===--------==++=++==
====------...:---====---+=+***+*+++=--:::::-------:::--------------=++++++*********++++********************......-:-====-==+*+==++=-*.............:........................:..::-=:-============++==++=-
=====-----...:----===----++**+*++=--:::::---==----:.---------------=*+++++++++**+***##*###*****************=.....:--:..--===*=-+++-+*=........:...:........................-=:====++++++===-.-+++=-+++=-
===-------....:---===----=++***=---:..::---===---:.:-------------:-=*+*******************#****#*********###*......:.:.-:====-=+++++*+-..........::--:.......................+=:------:--:==+==++=-:+++=-
==-==--=--:...:---===----=+**+----:...:---=====--:.----==--------::-******************#**#****#********#####:.......:::-=====++++**++=..........:::-::......................=++-:==-===:---=-::--+==+++=
==--++---=....:----==-----++=-----...:---==+====-..---====------:::=*********************##***#*********####=.........-:-++++****+++=..........::::--:.........................+:-.-.-+===-=====-==-+++=
=-=-=-++=-....:---==--===-==-----::..--==+++====:.:======------:::=+********************##****#**********##**........:-=-==+****++=:....:::...::::::-:.......................--:--=====-====+==-===---==
=======-=-.....---==-=========---::.-===++++===-..======---=---::-=+**************************#***********##*:......:-:-+---=+==-==-:.....::--::::::::.......................--=========+++=---====+=-:=
=========-.....------==========-::.:====+++====:.:=====--=----::-==++++***********************#************#*=......:=.==***=======*:.......:-=::::::-:......................:======++++==--+++++====--=
==++======.....:----===+======-::::-=++++++====..=====--==-=:-::===++++++***********************************#+......---:=+++++===+**:........::-:::::::.....................:=--==+=======:+==+++++++-..
==++++++==:.....::--==+++====-:::::==+++++++==-.:=====-=------:-==+++++++++++++*******************+=*********#......:==+======--+*++:.........::::::::-...................::.::.-----====+++***+++=-:.:=
==+++++++=-......::==++++====-::::-=++++++++==..=+++++=-==---::===++=++++++++++*+*****************+=*********#-.....-+=+++=-++==++=--..........:::::::::...............--===-::::==-=++++++*+++=-:--:::-
==+++++++=-.......-+++++++=--:::::-=++++++++=-.-++++++++===--.-==+++===++++++++++*****************+=**********=.....:*+=++**+::+==+++..........:::::::::.............-====-----=+:===========-:-===---::
==++++++++=......:+++++++==-:...::==++****++=:.++++++++++===::===+++====+++++++++***************+++=*+********+......***-++**+++**++=...........:.::::::............=========+====:.:-=++++-=-=-===-==-=
===+++++++=......=++++++=---....::==++****++=.-++++++++++==-.-===+++=====++++++++***************+*+*+++********......+***-:+*+-+++=.:...........:..::::::.......=+*+++=+==+++==+=+-=-++++=-+-=====-=+--=
===++++++++:....:++++++=---......-=+++***+++=:+++++++++++==.:-===+++======+++++++*********+*****++**+++********......=****+-::.:.:-==..............::::::......:-=-++++++++++-====--=++*=-=+++-==-===+++
===+++++++=-....-++++++-=-:......-==++****++==++++++*++++=-:-====+++======+++++++********++*****++**+++********......:++***+=--=-====:...............:.::........::=++++++=--===++====++*+==+*+=--=-:-=+
====+++++++=....=++++++--:.......:==++****++-++++++*+++++=.:-====+++======+++++++********+++****+***++*********:.....:+=+****=.:====-:..................:.........:..--::=*++=---:=++==++**+=+++=-=:-+**
-===++++++++....=+++++=-:........:==++***++==++++++++++++:.:-====+++=====++++++++********+++****+******+*******-......*+++****----::--..................::.........::--:.=:+++=--::+++++++++++++==+****+
.-==++++++++....=====-:...........===++*+++-++++++++++++=..:-=====++====+++++++++********++*****+++===+********-......+**=+*+++++=====..................::.......-====++==-:----=-::++++***++*+++****+==
.--==+++++++:...=-==-:............-===++++=-++++***+++++:..::-=-==++==+++++++++++*********+***===+*++**********=......-***+===:=++====...................:....:=...--=+=+++++=-+==--:-+++++***++**++--+*
..--=+++++++:.....:................---=++=.=+++++***+++=....::---==+=++++++++++++**************+*+---+*********+.......-++:+=-=++++++=-..................:....=++...-+*+-=+***++++-=.:-===+++=++==--+=++
..:--=++++++:...........................:..+++++***+++=:.....::::-====+++++++++++********+++****+:---=+********+........-=+=-=---=====+-.................:...:=+*=++=+**+--=+**++++=*****+:::---++==-.:-
=======================-===================+=============================***+++++*****+--:***********++-+==+++++++++++++++++++++++=+=+++++=-::::::-=-::------::::::::::::::::::==--==================-==
=....=======---======-=+-==================--============================***=--=+*****+--:+*********+++=====++++++++++++++++++++++++++===+++++==-:::::-===========================-=====================
=::::======-::-======---=======---========---===========================+*************+--:+*********+++=+++++===++++++++++++++++++++++++++++=++++++=-::--::=+++=++++++++++++++++++-===============-====-
++++++==++++=++++====++++====++++++++=++==+=++==========================+***++++=*****++++=*********+++=+++++++==+===++=++++++++++++++++++++++++++++++++=--=+==+++++++++++++++++++===========+===---==--
========================================================================+*****************************+=++++++++++++++=======++++=++++++++++++++++++++++++++=+++++++++++++++++++++++++++++++++++-===----
===-========+========-::-=======-===================-===================+******=+*********************+=+++++++++++++++++++=-=+=-+++++++++++=+++++++++++++===================================+==--------
===-=======+=--======:=::=======*+=======----======-+===============----=*****+*+*****++=-+***********+=++++++=++++++++++=++++++======++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-==-----
===-========--======================================================:---=****++=**********************+========+==========++++++++++=======+++=-=+++++++=======++++++++==++=++++++++++++++++++++:=------
=============+===============-::::---------------------------------++++++***+++*=*****=++++***********+===================-===============-++==--+++++++++++++++++++++++++++++++++++++++++++++++-=++====
=============================-:------------------------------------+++===****************************++:::::::::::-=-=-==-=================++=====++++++++++++++++++++++++++++++++++++++++++++++:===----
===-=======....======--======+++=----::::::------------------------++++=+*************+=+=+***********+++++++++++++++++++==================+++++++++++++++++++++++++++++++++++++++++++++++++++++=++=====
==+========:...======--+=====++=+------------------================+++++++================+++++++++++++=+++++++++++++++++==================++++++++++++++++++++++++++=++++++++++=+++++++++++++++=++====-
=========+===================++=+++=-=-=---------------------------+++++++++++++++++++++++++++++++++++=+**************=====================++++++++++++++++++++++++++=*+++++++++=+++++++++++++++=++=+===
=============================+++++=+===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================================--==-===
=============================+++++=++++-====--------------------===+++***=--==*****+++=+***************=++==*****+:--****+=====================+======++=++===========================================+=
=======================-=====++++++++=++++=-----=====================+***-----*****=---+******==*******+==-+*****=---+***+=====================+++=++===+====++++++++++++++++++++++++++++++++++++++++=++
============--========:-=====+++++++++++++----=--------=-::::::------=****************+*****************++*********++****+=====================++++++++*+****++***+++**+*************************==+==++
=++++=====++++++====+++++====+++++++++++=++++=::::-----=::::::::::::-=***+*+*+****+****+********+++*****+=*+*+****++*+***======================++======++++++++++++++++++++++++++++++++++++++++++=====++
=============================+++++++++++++++=----------=+++=++++++++++***************************************************+=====================++*****+******+---*********++************************+=++
=:+*========-========--=-=======+++++++++++==+++=------=++-=--++++++++***-+=-=*****==-=******+-+=+******+-+******=-:--***======================++**=---=*****+---+*******+*+******====*****+:---****+=++
=.=:=======---:======----======-+++++++++++++++=+------=++::--++++++++***-====*****----+*****--+++*****+-=+******+=-:-***======================++************+:::+******++++*************************=--
=:==========---========-===========++++++++++++=++++-=-=++++++++++++++****+++*****************++*+*******++******+++*****+=====================++**++++=*****++++=*****++++=*****+==+=*****=+++=****++**
++++++=======+=========+=+=========+++++++++++++++=+===+++++++++++++++*****+*+*******+********++**+**++*++*+++**+++++++**+=====================++***************************************************+=++
=================================+=+==++++++++++++=+++==++++++++++++++******************************=+=------::::::::::::::*+=-==--============++**+-=-+******++++*******==+*****+=+++******--:+*****+**
=-==-======--:========---================++++++++++++=+====-=========+***+---+-=---::::::::::::::::::::::::::++-=-==-=============-============+***+---+******===+******===+******==++******-===*****+==
====+======::::======-=-=======--========+++++++++++++=+++-====-----==***----+--:::::::::::::::::::::::::::::::-::---+++++++++++++-============+***+===+******===+******===+******===+******---+*****+=-
==========================================-==+++++++++++=++++=----===+******+++=-=+--=+=-==+++++++++++++++++++++++++=*********+=++-============+***+++++*****++++=*****++++=*****++++=*****++++=****++++
=============================================++++++++++++++++========+********+++++++***************************++++=+++++++*++==+-============+****************************************************++++
================================================++++:---:::::::------=********++++==+***++**********************+==+=*************-============+***+*+++*****+==-+*****+---=************************++**
=:+========:+-+======++========+**========-=-===++++++++++++++++++++++********+*************************************=+*********++*-============+***++=*+*****+=+++*****:::::************************+=::
==--=======:==+=========+========+=========-=======+++==-+++++++++++++********+**+++=-******=+==+*****++===*********=+**********+*-============+***++++*******=++************************************:::
+=+=++===+=+=++=+====++=+=+=====+=+=+==++++========++==-=-++++++++++++********+**+===-******====+*****=====*******+*-++=**********-============+***+*+*+*******+*=*******+++*************************+**
++=++++===++=++====================================+++=--+++++++++++++********+**************************+********+*=*************-============+****************************************************++**
===================================================++++++++++++++++++=********+**********************************++*-+************-============+****************************************************++**
===================================================+++++++++++++++++==********+**********************************++*=+************-============+****************************************************++**
===============================+---::-----:::---:::::::-=-==-=-=++++:=********+**+====+*****=+==+*****=++==******++*=+************-============+****************************************************++**
===============================+--:--::::::::::::::::::--:---=-====--=********+**+===-+****+===-+*****===-+******++*=+++++++++++++-============+****************************************************++**
===============================++=+++=+++++++++++++++++++++++++-+==-===++++++++*************************+********++*=+++++++++++++-============+****************************************************++**
===============================++++++++++++++++++++++++++++++++=++--:++++++++++**********************************++*=++++======================+****************************************************++**
===============================++=++=++*++*****************===+--=--=+========+**********************************++*-===-======================+*****************************************************=++
===============================++======++++++++++++++++++++====-=:--+++++++++++***====+*****====+*****====+******+++-+++=======================++****************************************************-==
================================+**+++++******+++++************==--=+++++++++++***----+****+----+****+----+******+++-==========================++***************************************************+-==
================================+**++++=+*****==+==***********+=:--++++++++++++**+++++*****+++*******+++=+********++-==========================++***************************************************+=++
================================+***=+++******++++************+--:++--===++++++************************************+-==========================++***************************************************+=++
================================+***+++=*******++*************+:-=+++==-+++++++***++********++********++***********+-==========================++***************************************************+-==
================================+*****************************+=+++++++++++++++***=====*****====+*****==+=+********+-==========================++****************************************************===
================================+***++*+******++*+************+++++++++++++++++***----+*****----*****+----*********+-==========================++***************************************************+=+=
================================+***=++=+*****=++==***********+================****++*******++==******++=+*********+===========================++================+++++++++++++++++++++++++++++++++++++++
================================+***====******====************+===============+************************************+===========================++++++++++++++++++++++++++++++=++++++++++++++++++++++=+++
================================+**===+=+*****+=+*************+=====:---------=***+++++*****=-==******:::=*********+:==-=======================---+---------------:-+-::--:-++++++=+++++++++++***+*+=***
================================+*****************************=====+-=========+***+++==*****=--=******---=*********=-==============================--============--::::-=+++++=+++++++++++++++****==+***
================================+***++++******====************=====++++==++++++***++++******====******---=*********==+++=====================+=:::-++==++++++=:::::-=+++++==++++++++++++++++++***+++=***
================================+***=++=+*****=---************=====++-==+=+++++****++*****+=****+****************++=++++===================+-:::=++++++-+=:-:::-++++++=++++++++++++++++++++++++++++++++*
================================+***++++******+===************=====++=:--=+++++++++++++++++++++++++++++++++++++++++=++++==================::::=+++++++++=-:-=+++++=+++++++++++++++++=++++++==+*+**+++++*
================================+***++++******++++************=====+++++++++++++==-==++++++++++++++++++++++++++++++=++++===============+::::=+++++++++++++=++====++++++++++++++++++++=++===+++******=***
================================+*****************************=====+++++++++++====:::-==-======-==--=----===========++++-=============::::+++++++++++++++++=+++++++++++++++++++++==+==++++++++****==+***
================================+***++*-******=-=-************=====++++++++++++=+:::+++=++++++++++==-====+++++++++++++++::::::::::=-:::-++++++++++++++++++++=++++++++++++++=+====--=++++++++++***+++=***
=++*+===========================+**+=--=******=-=-************======---------===:--++=-++++++++++=+=====================+++++++++-:::-++++++++++++++++++++==+++++++++++++==+===+++-==========++++++++++*
====-===========================+***++++*******++*************=================---++==++++++++++-=++======+==-=========+=++++=+::::=++++++++++++++++++++-++++++++++++==+==++++++++-==========+++++++++++
================================+***************+*************-==============-:--++++++++++++++==+++++++++++++++++++++++++++=::::=+++=++++++++++++++++=++++++++++++====+++++++++++-==========+==========
================================+*****************************-============+---=++++++++++++++==++++++++++++++++++++++++++=::::++++==+++++++++=+++++-+++++++++++=-=+++++++++++++++-===========----------
================================+***=-=-**********************-===========+:-:=+++++++++++++++-+++++++++++++++++++++++++=:::-++++++++++++++++++====+++++++++=-++++++++++++++++++++-=====================
================================+***=-=-**********************-==========+:-:++++++++++++++++=++++++++++++++++=+++++=+-:::-++++++++++++++++++====+++++++===++==+++=+++++++++++++++-=====================
=================================**+++*++*********************-=========+=::+++-:=-=+++++++==++++++++==========+====---:-+++=++++++++++++++====+++++===++++++======+++++++++++++++-=====================
+*+=...------::***+....:-..---...-:...-::..-=+=:.=*#=..::+.+==.:....-:.:=...=-..:-----==.:-:-----==+++===-...:-+.:-=-.-=..:++=+++====+...:-=.....-.=:=-#-:..:===+++++++=..--.-:=.:..-=--+++=++.:-.......
=-::.:.---:-+-:***=....-:.:---:.........---++=:.-===*::..-+==::....=+-+**...=#*-=++=-*#*...........-=+**=....-:+-.:+-.:-*++===++-=+==+...........=-=-++++====.:--:-===.......+*+*-..:=--=+==+*::::.::...
=---:-::......:##*=.**..-::-:::--::-=:::==+#+-###-==#:...:-:::::....+:=+=-..=##::+=.-##*.:=++++:...-=*##+=-::=:+-.-+=-*+*#*+++++++++++...::......-=-:*+=*+===--::--::.....::+*###*..:-.....::...:.:::-..
:::::-=+**********+...:.::::.:.:-----::-:--:=+-*=====:..-==+=-:-:.........:=*##:.::.-##*:+#*++*#*..-+###*+=-:=:#++*#######*+++++++++++....:---:..=***#####***::::::::::::.::*+****..*##########+........
:-----:+****####**+:::::::::::-----::--=::::--::--:--:..--=+-----.....:-::==*#*:-==-:##*.+=++++++..-=****+--==-#+#########********+++*...:-==-::.+**######***------------.:==****-..*+#*+***#*+*==--++++
:.::::.++****#####*=++++=+==++--=-=+::--=:.=.::.-=:-::::.:-+:::--....-:=:===......:-....:*-=++***..............#+*#########*===+#***+#.....--..::+*=:.....:*+=--=+===---:..:=****-..***+==+*#+**+-..==:+
--:.:--+++****#####=+++=-=++++:-==:=-:-:--.:=:..::.-:-===--+-====...:+=++==-....=*=:**:.:*.+*****:.....+.-.....############*++++#++*+#-.:=::-==::+@-..:+*=:##====+======-.::=*#++-..*==++++*+=#*+-..===+
-=++=--=+++++++++**+++==.-=++=+---:-+***++=+++--::--:.....-::.......:=+++=::...-##+=*+:.:*:*+=++*+....*=-=.......:=++===-:=*++++*++*+#--.::.:--:-+@-.:-*-:-##===========:-++=.:--...**+*+*+*++#*++=++==+
*******++******+++++++=+======..::-:::-+::-+=*=--+:::....:-::........-*+=........:-:-:...-.=====++....***+*....---===---:.-**********#:::....:.::+@##=.:.++##++==-=+======+==:::-:..+++++==+++=++=+++=*:
++***=.+******+===-===========.....==-:-+-:::-::=+**#:...=-::::......*+++.....:--:::.:::.=.+++=++*:..-**+*.....-:.:-::......::-=..:::-:......---:=@#**-.+#*##:.:..:::.-=-...........**=++*+++-:-++**+===
++=:...=+++++++===-===========:::--=====..--==.:---.+:..:.--*-::....:++==....=*##:===:=-.-:-++++*=:..:+==*.....:.:+++-:-:..:==-+..=:=+.:..::-----=*+-==-===#*:::.:...:--:...........++-+++++====+=**+---
-......==+========---+=..-=-:=.....+*=.....::.::=====..::-=+=-:=-...:==.:...-###+:--+*-+....:.=:=:....+*##+=:..............*==*+:#:-*=....--:-::.=*++####+*+#-=-:..:+*:=............==+==++====-+=**+---
:=-==========------:--::-=-.-=..:::::-:...:::-.:===:*:...:-+=::::...........-**###:::.:+##*-:::-+##-.-####*+...+++=+=-===+==:.=+.-::==##*==+######*##########.......................------------=++++---
=++::+#*++++++++++=.--::::-----::.::::::..-=+=::==:.-.:+#*--=++:...:=**###*******==+**+=#:..=+++:.+-.*#+*##+...-=++*-:::::=:..-=:::.:*#*..-*#**###**###**####.......:=....::::::::-:*########***=:..=+++
=-:=-=-***********+..:-------:.:=+===-=-..:::-:-*+#*#-**##**+**##*****##-#=**++=++++++++-.:*=.:.-:::..=*+-:....:++**+-::::=....=-:...-##-..-=:=###**###-#**##........-...-====++++++*######****+====++++
-:=*++:***+-=**=-++.:::------:.--:..=::...=-=+.:--:.==#+######*##*******-#+=*--=++=+++=+::=:..:..-:*########*#*--::--:..:.-...:==-.-.=##*...:+####*+*##-#****-----::-....-===....+*+########***+-:*=+==+
:-.:--:****--=+---+##+------=#:.:...........-::-+++++*++++=:....-+-=****:*#++-=+++++=+=++:-....:.::#**#+#***=+=-:.::::::.:.:+=:=##=-*#*#=-+***#**########*##*-+-+=====+=:-===-...+*+*###*:..***+==+=+=++
==--++=*+-=:::=:::=##.......:#+--....====-::+=.:--==**+++.......--..-==+-=+*+##**==+--:-@*--.:..:+#####*****+*+=:-:::-=:.::++--###*+@#---======++-::::::::::.=*.:=:=+...---=-*::.+*+####*++*##*=.-:.--=:
----:-=+:.:-=-+:::-#*.......:#+==:...++++-.-=-::-=-.-*+===+.....--------=====+***====:::####***####*===-+===-=-=-=====-:::=#*-####**#+---=====+++-::::::-:-:-::.-*+++..:=----+---=+++***###****=..:-...:
+-+==:=-:-====-----##-......:#**+-.-.-***=----==---=-=++==+--++==---:==========-===-::.............:..:.-.#####+--++++=-.-=*==#*+*=***:-==--==+++-::=-==::-::.:-=++::*-.-+-=-=-===++++*********=.......:
+-*+-.=+++*++++*+++###+.....:#+*+=...=#**=.:-.:=:.-:.+....-=*+..=--:::-=-===*###*#*####*.............:+-..-++-.-=====-+-::-=====:-===-.:-:..:::---:=++=----::..+#*=.-+:.:=:--+-=====+*++*******=:..:...:
:----==*****++=-::-######***##*#*+:+==#**-:--::::-=-.-..==--====+=----==---=*##=--=-*##*...=*-........=...-+=-.:=-====+-.---=====-====####=*#####=:::----::-:..-.::......-::.::::---+**********=....+*+-
=-=+=-=..-.........:-==---.:=:+***---=#+--:::--.=-=-.=+===+*+======-======-=*#+=-===-##*..:==.:-...........:...:-::-:::::-:----=*+.---###:=::.+##=-+:-:::-=::=+*#######--===++++*##************=...=*+-=
===+-==.....-..-.....-:.:+===#****--.=**-+...::--:-..-++=::-.:-===++++++=:-:+@=-==+-:*#*.::=-.::...............==.:-:-::.::-----:..:--###**#**###=::-:::=::::=+#=-+=#:+-:==*##*+++*+=--=+===+++=-:.::..=
+=+=+++....--..-...=::-====-+#+**+=-.:+*:....::::::...=...-=##@#+++++==++=:+*@+-==--:*#*:--=:..................--.::::::.::=-----:----###########+-:::--:::::..:..-+*-*+=###++++++*+==-=+=+++++=..::-..:
*+*****........:.....:-=+=-:+#:...=.:.....-..:.==:::.-=...=:-#-*+++++++=-=+:+#*-----:+#*...:-+.................++*******++*##########**:+::::::*#=.::::::::::-=*=+******+***+++****+==-.=++==++=.:-:::::
#######............:--.......::...........:-==:::::..-====-=*-:.=##*******+-*#*--.:--*#*....:.......:::::::::::****+##*=***###***###***.:+:.:...#-...........=+=:+++++++*##+.....###-:::-=++-=++-+:::-::
+##+=+*...........:====+*++++-:............::-++-::..-=:...:+-..--====-=====*@*------*#*...:-=:....:=====------***+.+**-=*+--:::+****+#-#=+...:.+-...........=+=..+*+-:=*#+...:=:.-#---::::---=-........
=-*--:=:-::++*#******=+**##++=:...............:-==-..-:=:...-...-=====+=++==*###########.:.:.......=***********+==:::::-+=+**********+#+#*#*:--*#-...........===.::=+*::-#:...++*.+@---::::::--:.==.....
:.-==--..:::.-=--==-++::::...::...........----.:-:::::-:-.....:::=-==-=.:+=+:.:+***#+=*#***+*#*:::.-++=....:*++==**+*+*+*+-=====++++*=**#########-...........--:.::=-:+:-#*.+###+*##:....:......:-+=....
#######.:-==-:...==-:...---::::...........---::.:=---:.:-........==--:.-+=++:..===+=--+-**+*+++*-:.=*==*#+#===+...:-:---++=-----------###==######-...........:::--=***#+=##*#+**###@:...........:-+.....
#######.--+=-::.:--......:::=+..::...+*=..:---:.::::.********#***==-:=-+===+:..:.:::.:+-*++-+**+:..-::........::::=+++=-+==-----------###-+*#*###-......:=*-.-++=-.=###++##*########:..:-++-:..-+-.:.=..
*+**###:-:=+:::..:-:::::.:::--..-=.+.:==..::.......:-**=+++++#+++=:-----:--=:........:=.:::::......:-....:.....**#*++**::=+-----------###*#*=####=..=+:+-.+**++*+*==+*#######**#####:.---==--:..........
+=+*=*#+++==:-++--+::.:---=-=+-=+=-:++***:..:.:::..::*##*#=...=+*=:::::::.:=:.:=+==.....#*#*#######+=-:::::::::.........::--===:=====-=+++++++++=:.-+====...:...........:#######*###::--:..:--:.........
+*+-+**************+=::--:::::.::+-:++++-.::===:-=:::+###*=-::=+*-:::::::::-...::....:.:=::.*+#*#@@#############******#**#=-==+===+==-+++-=:-=-+++**=+==+**+......::....-###=*######::---++:::--=***=:=*
=+:-=+#*#####*+-...-------=+++......=::::::-==-=*=::.++*+#*-+#*=*------:----:..:::..:.:.#***##########@@###@@##*++*+******+==+=*-+:==-+-+------=--.-*:-**-::............:##**#+****#-----==-:-===+*+=-=*
-=--=++###@@###*+==*---+-----*-==++*****+--=++=--.:-:+:==.....:--==-=====-==:.:.....----#*#**##***+###@@+=*####*+*+******#+=======----+------:---:....-..:...:::::::::::=***++++++++-----+-:---=+**=:=++
.::..--*#########**=::::+--:-++=+***=**======-::.-:--=....-...:+===:+===.-==-..-:::::::.############@@@##*##@###*+***+:=**=---==-=--::****#*+*+++-.:.:::....:**+=+*=+-+:************-:--:.-=---===*:-:-+
-+:::==*#########**=::::+:--:=++***+*****=:-=----::.-+:.::.:.=+++===++=+-.=+=:::--.:-::.##*====-:+##@@@@@#@@@##*******.:#*###*###**=#*==-+##+-::=:.........::=-+=--:-.:-=***********+===-===-++=........
:-=-=-:***+*#######=::::+:---++**##**+*****#*+.::-..+=-::.--..-=-====+==:-==-:-:..-.::..#*----=*+-+#############**###+..*####*#****##*:::+++=--:::.......-:.:==----==---+********###+++-=+----+-........
=-.:--.*##****#####=.:::+----++*#********=..-::.+--.*=--==---=====:::+==-===:.:.........#=:+##+-*##=-=:....-...#*####+.=#####***##****..-:=-:.-::........--=:*###########***********+++=-=-:-:=-..===...
:=:-:=+++*+*****+**++++=+=+==+++===+-.+##++=......::+.......:....==--::::::=:...........###########+-=+---=--::######*:+##############.-:::.:-.:......-+::=-.*#####*#*###********##*-----==-:.--..+**...
=:-:.-:=+**######**++++++++++++***++*-=**+##-.+=...=-..:....:.:::===-======-*###++#####*...........:==*#*=--.*#######**###*+=*##*=+-..:.......:.:....=**::-::*+-#+#++-*##****#******======+=---=.:**=:-:
-===+=-************++++++++++++*#+==::==#+*=+==+#+=++=:........::========+::*###*-#####*.....=......:-.--:::.:=...........:+*###*#*:............:-++=--*###****+#*#+++*+#****#******+++--=--.-+=.:==+-==
.---+--====++=++++=====+=====-=**##=++:-*+##=*#######=:--------::=-+*#*=:-++*##+--..###*....:-......-++*+--:=-+=:-.:*.:+..:==*++*##+=:#+++**+**+**++++*+*##******************#=-****+++=--==+-+=.....-==
::=...:::---.::==-:===*#=+++=-==:-+++-::*+*+=*+++****-.-======---**=:+##**+-+##-....-+*-:.....:....:=+=-+-:.==++#=+##*##++=:-+=+====.:#++=::-++++******=-****##**##*+*++######++####++++:---=-=+++++*###
#*#####--===:=+++-:==--=-==+===-==--=--++++*--+*==-++=:-++=++===-...........=*+.-:...-#-..:-...:==++==+::::::--#########*#=...:--.....#++=*+*+*++*++***==**++*#*******++*###########*++-:::---=+-#######
--....====+=.:+*+--==-------+=+#*=-*=*++*+**-:++=**-*-:=+++++++--....:......-=+...:...+-:-==...===*-.-+*=--.==+#::+***:.:#--.::::.....#*=#*+-**++=........:::++***++*+++*###########=.:::--:::-:-++++**+
---++-=-====**#*+-:+--------==+*#*+**=***=:=:===-=+*=-:=+===-=-==:::.:..:::.-++-.......--===--:===+###*=::-*#+:+**++++=*+*-..--:......#***=:***+*=...........++*+**+*+*=+###########..:::.-::...::::::--
===--:=-==:=***++-:+--------==+##########=-=-===------=+===--=--=:::::..::::-*--..:*...--====+=+=++##*=:=-:++=---+=++**#**=:-::.......#+***+-++++-...........+*****+*****###########:.-=+=:-::..::::::-:
..-==:=-===+##+++-:==--------=*#@@@##@@@#*:+--*++----==+++++=+++=::::::.::::=*=*=.:#*++*======-+==**+-:.-=+=:=-+#===--+=+*-:::........#++#*+=-+++-...........=*+++++++++*###########....-++-:...:...:-:-
--:::.=-===***-+=-:=----------*##########*---=**+==--............:::::..::::=+=++=-*++=+-====-====*##*..:**+**#*--+=--====:...........#=-#==:-+=+=...........++++++++++**#####**####....:::--:..::.---:.
..::-.=---:...:-::.-====-=----*#*########*---=#+====-............:::::::::::=*++=--==:::#**********##+...*#####+++-......-:...........#====----=+-...........*##***#**#*#***#+-+*#**---....=---....===:.
...:-:=:..........:+=====---::*##########*-=-=#+===+-............::::::.:::.=*++=--==:::***********##=...-#####++**+=+++**-...........*###*####**-...........***###*-=##+:-++==*+--::---:..:::.::..:::.:
-:::..=:...........========--:*##########*===+#+===+=............:::....:.:.-*++-::.-:-:*****#*****####==*#####++#***=+**+:.....::::::::=+:+*+++=----::---::-#***++*==+++::+++++*=:.:-:......::=##*==:-+
*******............--======---*##########*===+#*==+==............:.:...:.:::=*+*++++-:--*********###***-++#####****#=*****+***********:=*=:+*#**#-...........*###**##++#=....=+.......:.-:--.::=#*-*.--*
...................=------:-:-================+#++===............:..--=--.:==::.........+++++++**+*+**+-::......-+*+-=**+==***********::-*++=**##-...........*=+*=**+**++...:==+....---::::::==--**#+=*=
-------............--==-:--:::-======+**==###########............::++----...:-:.....-*+=--==+++++===-==:::.....##*-===*####******+****:::::==-+##=::::::::.:.***#****#*++:.:.-=-....*##*+==--.-:+#*+===+
--::--:............------+====-=#=---+++=-########*++.............=#+=:=-:..:-:.....::-===+-==-===+-.+*-.:.....##+.:::=#@@#**-:-:-:+***####*#####=::*+:::::::*+*+*+##*****+++***++++::===+*=-:::=**+-+-+
---:..:------:.:::--.::+=====--:.::--...::+***++++++=............:-*--:-::-*:-.=....++==+**===-++*+::-=:.:=-...##+.:..=+**#*****************+==--:..=-:.-::::++*+*++++++*++**+++++=*==*+==-+-:::-:-===-:
=--:...*=++*+=-==+*-.:=:-:::-=............---========..............++=-:.-#::-:+:.::-=--++*++=-+*+=-:--+*++-::-*+++++#*++*************.::::=+++==-...:.==-.:.::---===..:=##*******+#===-=+--::::-:::--::
.::.:..-=*+==+-=*#*===========....-=:.....---========..:::--:=-....:==-..:.=-:.-+=----.-+***+==*++=++++*###++++#+-:=-=+++##**+=++======+==++++==-:+-=-==-==+-:-=-..--.::+******+**+#-------:-..:=-------
:.....:+++*-++-+=**-========--....+*=.....-:-----=---..:=-:.::...==*=.....++--.-++=--:::+##++==+++=+=-=*###====##+-=-=++###**+==+====+:---====-=+-=:-..:---==-=---:=-..=+##***##***#::+--=====+=---=----
...-:..+++==---:::=---=:.:.-**...:*++.....::-:-:-+--:............:=#=:....:+:.=--++=:...==+=++=*+-::---=##+=---:-:-:-::---+**+=+++++=+===+*+=++**----:-----::+*#=+++=-:-++-==+*=+=+#:::-=-----++--------
......................................................:======+:...............*-............................................................+=..........................................................
.....................................................-########=..=######+.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@##.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@#*.....*-............................................................+=..........................................................
.....................................................:##@@####=..=######+.....*-....................:+.*-:-+:...............................+=..........................................................
......................................................#####+=#+.-########+....*-.....................+-.*-.+=*.++.*--++.....................+=..........................................................
.....................................................-#######*+.:##@@@@@#+....*-......................-.:..+=*.+=:*..+=.....................+=..........................................................
.....................................................-########=.:####@@##+....*-............................................................+=..........................................................
.....................................................-#=+##=##*.:##*####*+....*-............................................................+=...........................................:....:.....-...
....................................................-*#--:..--+.=##*###*#*....*-.........................-+.+..*:...........................+=.........................................:-............=:.
....................................................=##***...++.*=-#++=+##=...*-........................:=--=-:-+::.........................+=......................................:...-:..........:-:.
....................................................###....:..+##-=-..=+*#+...*-..................................--........................+=.....................................-+########-.........:
....................................................+##:.-=:.-=##+-+*=-.:#*...*-.......................+-=:--.+:=..=-.......................+=.............................-+############@####*=........
....................................................###+=###+=*#@#########*...*-........................*::--:+-+.:.........................+=............................-####@@@@@@@@@@@@@####*-...-:.
....................................................######################*...*-.......................+---::-:::-:-:.......................+=...........................-*###@@@@@@@@@@@@@@@@####*.-:..
......................................................:::..........:::::::....*-............................................................+=..........................=*####@@@@@@@@@@@@@@@@@@@##=.-..
..............................................................................*-............................................................+=..........................-###@@@@@@@@@@@@@@@@@@@@@###-:..
..............................................................................*-............................................................+=.........................:=##@@@@@@@@@@@@@@@@@@@@@@####-..
..............................................................................*-............................................................+=.......................-=######@#@@@@@@@@@@@@@@@@@@@###-..
..............................................................................*-.....................+............:.-.......................+=...........................:+*#####@@@@@@@@@@@@@@@@####...
..............................................................................*-.....................+..=.::-*.*:-..+.......................+=..................:.:######=...:*##@@#####@@@@########+...
..............................................................................*-....................-+:.:+--++-+-=..-=......................+=.........................-=--#*-*###@##*==:..:-*#++##*....
..............................................................................*-............................................................+=..........................+=+::..*########*+*######+.*....
..............................................................................*-.........................::.-..-............................+=.........................=.......=##@###-....=#######=....
..............................................................................*-.........................=++=:=-:...........................+=......................**##=......-#####*:++...--+####:.-..
..............................................................................*-.........................=---------.........................+=..................-=######-......:#######*=.-**+.=###.:+..
..............................................................................*-............................................................+=.................=###@###**......:###@###############*#=..
..............................................................................*-........................=-::==.+:+..........................+=.................=*###@@###-....:####@@@@@@#@####@@###*:..
..............................................................................*-.........................*-:+=-+-*..........................+=..................+###@@###=...:.####@@@@@@@@@@@@@@###*...
..............................................................................*-........................+-..................................+=..................=#@#@@###+.#*.:##*+##@@@@@@@@@@@@###:...
..............................................................................*-............................................................+=..................+#########:-::=##+*##@@@@@@@@@@@@##*....
..............................................................................*-............................................................+=..................::=########:-#######@@@@@@@@@@@####=....
..............................................................................+-............................................................+=.....................:*####*=###@@@@@@@@@@@@@@@@####=.....
..............:=##******=::...................................................*-............................................................+-.....................-###==++######@@@@@@@@@@@@###+:......
..........-######@@@@@########@@##+-..........................................*-............................................................+=....................###-.:::-=++####@@@@@@@@@@@@#-........
.......*###@@@@@@@@@@@@@@@@@@@@@@@########**-.................................*-............................................................+=..................:##+:=....::.....=*###@@@@@###*.........
.....+##@@@@@@@@######@@@@@@@@@@@@@@@@####*####=-:............................*-............................................................+=...................+==*#*:=##*########*#@@@@####..........
....###@@@@@@@##*-...*###@@@@@@@@@@@@@#+.....=####@@#=........................*-............................................................+=...................+#**######*#########@@@@@###-..........
...##@@@@@@@###.........##@@@@@@@@@@##-...**+.:##@@@@#####*+-.................*-............................................................+=....................+*.-##@####@@@@#@@@@@@####............
..=#@@@@@@@@##=.........=#@@@@@@@@@@##:.:.:+-.+#@@@@@@@@@@#######=--..........*-............................................................+=.......................=@@@@@@@@@@@@@@@@####+.............
.:##@@@@@@@@##-.........*#@@@@@@@@@@##=.-#+=..##@@@@@@@@@@@@@@@@@####=........*-............................................................+=..................-....+##@@@@@@@@@@@@@@##*...............
.*##@@@@@@@@#+.:*-=.....*#@@@@@@@@@@##=.*#=..:##@##@@@@@@@@@@@@@@@@@##*:......*-............................................................+=.................+###+:+###@@@@@@@@@@@@###.+..............
##@@@@@@@@@@##=...::....:###@@@@@@@@@##:::...*###-+#####@@@@@@@@@@@@@@##:.....*-............................................................+-.................-######*##@@@@@@@@@@@@@##..*.............
##@@@@@@@@@@##*...........-#####@@@@@@*.=*...+@##*::#+##@@@@@@@@@@@@@@##-.....*-............................................................+=..................##@###@##@@@@@@@@@@####+..+=............
##@@@@@@@@@@@@####=...:........+###@@@##:-.:.-##*.::+-##@@@@@@@@@@@@@@##-.....*-............................................................+=.................:##@#@@@@@@@@@@@@@@#####...#-............
##@@@@@@@@@@@@@@##..--...........*#####**.--.:=+:...-=##@@@@@@@@@@@@@@@#*.....*-............................................................+=..................*###@@@@@@@@@@@@@####=...+*:............
##@@@@@@@@@@@@@@#*..*............*##*#-+-:...+#-....-##*##@@@@@@@@@@@@@##.....*-............................................................+=.................+###@@@@@@@@@@@#####+....=#=.............
##@@@@@@@@@@@@@@#-..-:...........*####-.=#*=.*#.......++*##@@@@@@@@@@##*:.....*-............................................................+=..................*###############*=.....*#*..............
##@@@@@@@@@@@@###:...............-###+*#####*##....+*.-####@@@@@@@@@###.......*-............................................................+=.....................-=++++++++-........+++...............
*#@@@@@@@@@@@@@##:..-....::.......###.-###-=+-*...:=.==*###@@@@@@@@###........*-............................................................+=..........................................................
##@@@@@@@@@@@###*.................+###.=*+*-..*..=....:####@@@@@@@@##=........*-............................................................+-..........................................................
=#@@@@@@@@@@#+....................:###=:*#*:..+.....-:+*@@@@@@@@@@@##+-.......*-............................................................+=..........................................................
=#@@@@@@@###=........::............*#####==-..:.......-:*##@@@@@@@@@#*........*-............................................................+=..........................................................
:##@@#@###-......-.................*#######*::...........#####@@@@####........*-............................................................+=..........................................................
.=#####-...........................*####*-....*+.........##*####@@###*........*-............................................................+=..........................................................
.=####*................:...:.:.....=+-.....+::.*+-:+=.........=#@@#=..........*-............................................................+=..........................................................
.:####=....................:-............*+=::**+==*##...*#*..................*-............................................................+=..........................................................
.=####*.................................-#-........=.....*#=..................*-............................................................+=..........................................................
.=#####.......................................................................*-............................................................+=..........................................................
..=####.......................................................................*-............................................................+=..........................................................
...*###-......................................................................*-............................................................+=..........................................................
...**..*..............-.......................................................*-............................................................+=..........................................................
...:#*-#......................................................................*-............................................................+=..........................................................
..............................................................................*-............................................................+=..........................................................
..............................................................:-==++++++++++++++++++++++++++**************+*+++++++++++++++++==-::......................................................................
............................................................:-=+++++++++++++++++++++++++++++++++++++++******+++++++++++++++++++++++=-:.............................::::::::::::::::.....................
...........................................................::-=++***+++++++++++====================++++++++++++++++++++++++++++++++++++==-......................:::::::::---::::::......................
...........................................................:--=+*****+++++++====--:--------------==========+++++++++++++++++++++++++++++++====:.................:::.:.::::::..:::::::::::::.............
...........................................................:--=++**++++++===----::..::::----:::::::------====+++++====+++++++++++++++++++++++++====-:...........::::::::::::::::::-------::.............
...........................................................::--==+++++===---::::.........::.........:::::----==========+++++++++++++++++++++++++=+++======--:...::::::::--:::::::::::::::::.............
............................................................:--==+++===---:::.............................:::-:---=====+++++++++++++++++++++++++++++++++================----------====-=-------=--------
.............................................................:=+++===-:::.......:--:...........................:-----=====+++++++++++++++++++++++++++++++++++++++======================================-
.............................................................-=++==--:........:-::.....::::.....................:-------====+++++++++++++++++++++++++++++++++++++++++======++++=========================
............................................................:====---:.................:::..::.....::.............:---::---====++++++++++++++++++++++++++++++++++++++++++++===+++========================
............................................................-===--:..................::....:::...::---===--:.......---------===++++++++++++++++++++++++++++++++++==+++=++===============================
..........................................................:====-:..................:....::::.....:=+**#*+=-:::......-=--------===+++++++++++++++++++++++++++++++++=======+===========================---
........................................................:-===-::.....:--:...........::::::-::....-+######*=-::......:====------==+++++++++++++++++++++++++++=+++=+==================--=====-------------
..................................................::---=====::......::::---:......:-=-==----:...:=*######*=--:.......-==========++++++++++++++++++++++++++++++++================------------------------
.............................................::-=+====-----........::....:---:...:-=====---:...:-+*######*=--.........-========++++++++++++++++++++++++++++++======----=====----------------------::::::
......................................:::----==+++=----:-:..............:..:-:..:-======-:.....:-+*######+--:..........-=====+++++***++++++++++++++++++++=======---------------------------:::::::::::::
.................................::--=====--:::--------::::........::--=+=-:.:::-======--......:=*#######=-:...........:==+++++++******++++++++++++++++++=====----------------::::::::::::::::::::::::::
.............................::----:-::::....::--:------:::::::--====++****+-.:--======--.....:-+*######*=-:............-=+++++********+++++++++++++=======------::::::::::::::::::::::::::::.....::....
............................:--:.....::::....:--:::::::::--=====++*+++*******-:-==+====-:.....:-+#######+=:.............=+++***********++++++++++========-----:::::::::::::::...........................
...........................:-:................:.:::------=+=====+====++*******-=+++++==-:.....:=*#######+-...........:=++*************+++++++========-----::::::.::.....................................
..........................::-:..........:-----:--====--==+=--===++*+++*******+-=++++===-:....:-+*####**+-:.......:-=+********+++++**++++========------:::::.............................................
..........................::-:........::-====----===+=--=++++++*********+++=++===++====-.....:-+#####*+=---===++++********++++++++++++======------:::::.................................................
..........................:::--..:::--====----====+=+++***+++******+++++++++++=========-....::=*###**++++++++********+++++++++++++=====-------:::::.....................................................
............................:---..:-:----======+++++*******++++++++++++++***++-=======-:....::=+**++++++++********++++++++++++=====-----::::::...................:=+++=.................................
.............................:--:..----=-=+++************************+++++===========-:..:..-==+=====++++++++++++++++==========----:::::...................:-=+++======-................................
.............................::---:.--:::=*****************************+=----========-::..-==============++++++============----::::....................-=++++++++=======-:..............................
..............................::---:.=+=+++****************+++++++++===-:----=--=====-::-=++++++==--==----===========-----::::..................:--====++===========-----:..............................
................................:---:.=+****************************=-==--=+++=----=--:-===++++++=-------------------:::::...............:--================---------::::::.............................
................................::----:+***************++**********************+-----::---======--::::::::::::::::::......................:----------::::::::::::::::::::::.............................
.................................::----:+*****++++**+***************************+:::-:::::----:::::.......................................::::::..........................:.............................
..................................::----:-*****++++++++++************************=:::::...:.:--:...........................................::...........................................................
.....................................:---:-+++++=====+++**************************==-::.....-######-:...................................................................................................
......................................:---::+++++++==-=++++***+++*****************+=--:.....*######-:....::.............................................................................................
.......................................:-:::.****+++***++====+*****+++++++++++++***=--:....:######*-:...::....-.........................................................................................
........................................:-:::.*+:-+++*++=:------=***+++++++*******++=-::...=######+:......:...-.........................................................................................
.........................................:-:::.:-::-===-=-::--:-+*++**+********+++******=..*######-:....................................................................................................
..........................................:::::.::--=+==---:--+++++*********************:..##*###*:...--................................................................................................
..........................................=:::::.:-:-----:::--:-+**********#***********+..:######=:...*++...............................................................................................
...........................................-:::::..:::::-:..--=*********+***************=.=*#####-:..=*++*..............................................................................................
............................................=:-:::..:-:-::::=***#*++********************+::-+***-...:*+**+--............................................................................................
................:............................=:---:..-=+*****-=-==+*********************=::----:...+**+-==:.:.........................................................................:.................
..............................................=:----:+*+=+++*=**************************-::--=-:..-*+++++*==-=-.......................................................................:-................
....................:..........................-:---::-+-*******************************-::---:...-++**+==+++=-=...................................:::-:.......:.-=-:--::------::--::::-:...............
................................................=:--::--++=+***************************+*:..:::...-+++=++=:..--.:...................................:-:---:...:.........................:...............
.........................:::::...................-:---:::*+***************************+*++=-.......:===-:-..........................................:............................:::::...:..............
..................................................-:--::.:****************************+++..:.......::....................:--:-.......................:...:::::::---------------------:...:..............
.........................................:--==-----=---::.:****************+:-::====++--:......-+-.......................:---::......................:-:-----------------------------:...::.............
.........................................:=+++++==++====--::**=*******++====-=+*#*:-==-::...........................::...:--==-:......................:-------------------------::::::....-.............
.........................................:-=++++==+++++++====*+=-:.:*+****+*+-=**+.--:-:.......................::::......:-====--......................:-::----::----:--::::::::-::-------:.............
..........................................:-=======+++++++++++*++=+*****++***=--+:.........................:::...........:--=====-:.....................=----====---....................................
.......................:....................::---===+++++++++*+**++**++*+++=--.........................:::................:-======--....................................................................
.......................*:..................::.::---====++++++********++++++===-::.......:.........:::.....................:--=======-:..................................................................
.....................:.=-.:::.:........:........::----===++++++++++++++++++++++++===-:......::::............................:-========-.................................................................
........................:.::::::-..................::---====+++++++++++++++++++++++++++++===-:..............................:--=========:...............................................................
....................................................:-----=================+++++*********+++++==---:.........................:-==========-..............................................................
........................................::::::::..:::--:::---===============++++++***+++*+++++*++++++===-::...................:--=========-.............................................................
................................:.::::::::.........:::::::::::---====--======++++++++++++++++++*******++++===--::..............:--=========-:...........................................................
.............::.....................................:::---:::::::-----=======+++++++++++++++++++*********++++++===-:............:--=========--..........................................................
....................................................:------===---:::---=======+++++++++++++++++++*************++++++==-:........::--==========-:........................................................
....................................................:----===+++===----:---======++++++++++++++++++++*************+++++++==--:..:::---======+====-:......................................................
.....................................................:---==++++++++++===------======+++++++++++++++++++++++++++++++***++++++===-------===========-:.....................................................
......................................................:--===+++++++****+++==-------====++++++++++++++++++++++++++++++++***++++++=================---:...................................................
..................................-=====-:.............:--====+++++*******+++++===-----==++++++++++++++++++++++++++++++**+*+++++++=================---..................................................
.................................:==+++====-:...........---=====+++++++++++++***+++++=======+++++++++++++++++++=+++++++++**++++++++++=================-:................................................
.........................................:=+++++++++++++++++++++++++=========================================-:--::::.:..:...:::::::::.......-----------------------------------------------------------
.........................................:=++++++++++++++++++++++=+=======================================-::::::::::::::::::::::::::::.....:-----------------------------------------------------------
.........................................:=++++++++++++++++++++++++======================================::::::::::::::::::::..::::::........:----------------------------------------------------------
.........................................:=++++++++++++++++++++++++====================================-::::.::::::::::::::...::...::...........--------------------------------------------------------
.........................................:++++++++++++++++++++++++================================---:===-::.............:::.::....::::..........-------------------------------------------------------
.........................................:++++++++++++++++++++++++==========================-:::::::::::::::::............:::::.:::::::::..:......------------------------------------------------------
.........................................-+++++++++++++++++++++++========================-:::::::-::...-.::::.:..........::::::::::::::::..::.....:-----------------------------------------------------
.........................................=+++++++++++++++++++=+++======================-::::::......:.:.::.:....::.....:.:::::::........::.:.......-----------------------------------------------------
........................................:+++++++++++++++++++++=======================-::-:..............:.::::..:::....:.:::::::.........:...:.....:----------------------------------------------------
........................................=++++++++++++++++++++=====================--:::::..................::.....:::::....:::::..........:.........----------------------------------------------------
.......................................:+++++++++++++++++++++===================-:::::::....................:.......:::.....:::..........::.........:---------------------------------------------------
.......................................=+++++++++++++++++++++==================::::..:...................:..........::::.....:::::....::::::.:......:---------------------------------------------------
......................................:++++++++++++++++++=++==================-..........................................:...::::::....::::::.......:---------------------------------------------------
......................................++++++++++++++++++++++==================-:::...........................::...............:::::.....:::::.......----------------------------------------------------
.....................................=+++++++++++++++++++=++==================..........................::::----:::...............:.......::........:---------------------------------------------------
....................................-+++++++++++++++++++++++==============-::::::...............::---------------------::.........::......::.........:--------------------------------------------------
...................................:+++++++++++++++++++++++===========:::::::-:.............::-----------------------------:...............:::::......:-------------------------------------------------
..................................:++++++++++++++++++++++++=========:::::::..............:------------------------------------.............:::::........-------------------------------------::::::::---
..................................=++++++++++++++++++++==++=====-:::...................:----------------------------------------:..........:::::.........:----------------------------:::::::------::::-
.................................=+++++++++++++++++++++=+===-:::::::::...............---------------------------------------------........................:--------------------------::::::-------------
................................-+++++++++++++++++++++=-::::::::::::::.............:-----------------------------------------------:......................:--------------------------:::----------------
...............................-+++++++++++++++++==-:::::::::::::::..............:---------------------------------------------------......................--------------------------::--------::-------
..............................:++++++++++++++=-:::::::::::::::::................:----------------------------------:::::::------------.........::..........--------------------------------::::::::-----
.............................:+++++++++++=-:::::::::::::::::::::...............:-------------------------------:....:.......:::--------............:......:--------------------------------::::::::::---
.............................=++++++=--::::::::::::::::::::.::................:-----------------------------::=*####***+++==-:...:------..................:-------------------------------::::::::::::--
............................=+++=-:::::::::::::::::::::::::..................::::--------------------------=###############**++=-..:-----..................:------------------------------::::::::::::--
...........................-=::::::::::::::::::::::::::::.:::...............-:::::-----------------------+###################****+=..:---:...........:......------------------------------::::::::::::--
..........................:::::::::::::::::::::::::::::::..................::::::::---------------------###################******+++-.:---..................------------------------------::::::::::::--
.........................-+-:::::::::::::::::::::::::::::.................:::::::::::-----------------=###################******+++++=:---:.................------------------------------::::::::::::--
........................:++=::::::::::::::::::::::::::::.................::::::::::::::--------------=#**###############******+++++++==:--:................--------------------------------::::::::::---
.......................:++++-:::::::::::::::::::::::::::-=:.............:::::::::::::::--------------***###############******++++=+====-:--..............:---------------------------------::::::::-----
......................:+++++=::::::::::::::::::::::::-+=:...............::::::::::::::::-::::-------*****++===++++**********++++=======----.............:-------------------------------------:::-------
......................+++++++-.:::::::::::::::::::-++-.................::::::::::::::::--::::------+***++++======++**+++++++++++=======-:--..............:----------------------------------------------
.....................=++++++==-:::::::::::::::::-+=:...................::::::::::::::::::-::::-----**++=-::::===++***+==-------======---:::...............:---------------------------------------------
....................=++++++====:.::::::::::::::=+:....................:::::::::::::::::::-:::::--:+****+++-:---=+*##*+------====-------:.::.................--------------------------------------------
..................:=+++++++=====::::::::::::::-=:.....................:::::::::::::::::::::::::::-**#####***+****##*+=--::..::---------:.::..................-------------------------------------------
.................:++++++++=====--::::::::::::-=:......................:::::::::::::::::::::::::-=+**#########****#*+=====+=---::---:--:..-:..................-------------------------------------------
................:+++++++++=====--=:.::::::::-=:.......................::::::::::::::::::::::::-:+**###########**##+=-==++**+=---------:.:-...................-------------------------------------------
...............-+++++++++=====-----::::::::-=-........................::::::::::::::::::::::::=++****#######**+++=---=+++****++====--::.::..................:-------------------------------------------
..............=+++++++++=====-------::::::-=-:.......................::::::::::::::::::::::::-+=-+****######*=::-:.:-=+++****+++++=--:..-:.................:--------------------------------------------
............:+++++++++++=====--------::::-+-.........................::::::::::::::::::::::::-***++****#####****+=--.-++++++++++===-:..::...................--------------------------------------------
...........=+++++++++++=====----------:.-=-..........................::::::::::::::::::::::::-**+++*****#####*****+==++++++++====--:...:....................::------------------------------------------
.........-++++++++++++=====------------=-:............................::::::::::::::::::::::::**++++*****+=-------==++++======---:..........................:::-----------------------------------------
.......-++++++++++++++====------------=:..............................::::::::::::::::::::::::-==+++++++*******+=:::-======----::...........................:::::---------------------------------------
....:=+++++++++++==++====-==--:::::-+=:...............................::::::::::::::::::::::::::=++++++++++========-:-===-----::.........:..................::::::--------------------------------------
:-=++++++++++++========--:::::::......................................::::::::::::::::::::::::::-+++++++++++==-:::----------::..............................::::::::------------------------------------
=+++++=+++++===+++=-:::::..............................................:::::::::::::::::::::::::-===++++++*****++===-------::..............................::::::::::-----------------------------------
==========+==-:::::....................................................::::::::::::::::::::::::::-===+++++*****++==------::................................::::::::::::---------------------------------
=========::::::.........................................................::::::::::::::::::::::::::---=============----:::........:........................::::::::::::::--------------------------------
=+--=+=::::..::.........................................................::::::::::::::::::::::::::==::-------::::::::::........::.........................::::::::::::::::------------------------------
=:::::::.................................................................::::::::::::::::::::::::-===-........................:..........................::::::::::::::::::-----------------------------
:....::...................................................................:::::::::::::::::::::::+*====-.....................:.........................::::::::::::::::::::::---------------------------
...........................................................................:::::::::::::::::::::-*##+==+==:...........................................::::::::::::::::::::::::--------------------------
.....................................................:::::.................::::::::::::::::::::=*###*+=====-:.......................................::::::::::::::::::::::::::::------------------------
................................................:-:.::::::-.................::::::::::::::::::=*####**++==---:....................................:::::::::::::::::::::::::::::::-----------------------
...............................................:---:.:::::::.................::::::::::::::::::::::-+***++=-::::................................:::::::::::::::::::::::::::::::::::---------------------
................................................----:.:::::::..................::::::::::::::::::::::::-=++++=-:::.............................:::::::::::::::::::::::::::::::::::::--------------------
..............................................:------:.:::::::....................::::::::::::::::::::::::::-=+-.............................:::::::::::::::::::::::::::::::::::::::::------------------
:..........................................:----------..::::::......................::::::::::::::::::::::......:::....................::::::::::::::::::::::::::::::::::::::::::::::::-----------------
::::...................................:-------------=-..:::::...........................:::::::::::................................:::::::::::::::::::::::::::::::::::::::::::::::::::::---------------
:::::::.............................:-----------------=-..::::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------
:::::::::::::...................:---------------------==-..:::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------
::::::::::::::::::...........:-===--------------------===-..::....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------
:::::::::::::::::::::::...:-=======--------------------===-..:.........:........................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------
++-+*++*++==+++++*******=-----********+++++=+****+*******+***+++*++***************+**+++*************************++=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=++++*******
*++*++++++++++++++*****+:::::-++***+***++++=++++++*******++==+****+************************+****************************++=--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-====++*+
++**+++===++++***+*****=::::::-::---+*++*=+++++++*+::+*****+==++++++********************************************+***************=-:::--:::::::::::::::::::::::::=:::::::--::::::::-:::::::::::::--::::::
=**++++===-----=++*****:::::-***++=***+*+==++++++**:-*+++++===+++++**++*+**************************************************************+=-:::-:::::::::::::::::::::::::::.:::::::::::::::::::::-::::::::
+++*++==-------=-=====-:::::+***++***+++===++--+******++++++=++**+=--=+++**+++*++**************************++++++*****************************-----:-:::::::::::::::::::::::::::::::::::::::::::::::::::
+++++++---------=====-:::::::+*******+++-+++*+#+:#=++==+*+==+*+++++***++++++++**++*+++***********++*******++++***+++**************************-+*=-:-::::----:::::::::::::::::.::::::::::::-::::::::::::
+++++++====---=======::::::::++***++++++=+++++**####**++++:++++:+++*+=+++++++++++*+++***++++*****+*++****+--=+*****+*******************************+==::::::::--::--::::::::::::::.:::::-:::::::::::::::
----=++++++++++----=-:::::::-:-+++++++*=-=*+****#+**++++-**=+++**=*=---+++++*++===++++++*++++++++++++++*+++++++++++**************************************+==-::::::------:::::::::::::::::::::::::-:::::
++++++++++++++=::::::.::::::-::-:-+*+*+*++++**+**.+*+++===-+++++**#*+++++++++++*#=++++++++++++++++++++*++===****+++*******************************************#**+-:-----:::::---::--:::::::::::=+::::::
++++++++++++++++=::::.:.:.:::::=-+++++++**+-*+****+***+++++++++*+*:++++++++=+*+**==+++++++++++++++*++++++*+*+++*+************************************************+:-:----:::::---:::----::::::::::::::::
==+++*+++++++++*-::::::::-::.::+++++++++***+++*******+*+==*****+**+=++++++**=:=#*+**+++++++++++++++++++++=--==+*++***+*************++**********************++****---------:::--:-----:--:-:------:::::::
:-:::::-=+*****=::-::-:::::::::++===+++===+++*****+++*+=:=+**+=******++++++++*##*+=+*++++++++++++++++++==++==*++*+:-++***++*************************************+=--:---::::-::-::-------::---------:--:
:::::::::::--:-----::-::::::::-::=+++=+==+====+++++++*+--::++*+********+***+++*++++++++++++++++++++++++++--=++++++**++++++*******+******************+*************--:::-::-::--:-::------+**++=-----:++=
---::--:-::::::::::--::::::::=*****+++++++===++===+++++*****+********+**+**=+*#=:++++++++++++++*+++++++==+=+--:=+***+*+++++***++**+*+++++++*+++***++******+**++++**+=-:::--:::----------=**********+=---
::::::::::::::::::--:::::::::++++***+****++++*++++++++++*****+****++*#*+***=+***+-++++++++++++*++++++++=-=+++=*##+---+++++++++***++++++++++++++**++++++*=++**++*****+::::-:::--:----:--+*+*******+*+++**
::::::::::::::::::::::::::::-***********++*+******+++++++**+=+*****+==********+**+++++++=+++++*++++++++===-+++++#**++-++++++++++++++++++++++++++++++++++=+++*****+**=::::::::::-:::--+++*+*++++*******++
........:::::::::::::::::::-::::--++++++*****+**********++++++*++++*#*+*+*++*****++++++++++++++++++++:-*+=-+++**+=++=++++++++++++++++++++++++++++++++++++++++****+*+-:::::::::--::::-++***+*******++****
...::---::::::::::::::::::::::::::::::::-+**********************+++*+**+++++*******+*+*++++***++++++++++**+++=**+++=+-++++++++++++++++++++++++++++++++++++++++++***=:::::::::-::::::+++*++**************
=-:::.:::::::::::::::::::::::::::::::::::::-::-+**************+*****+**+++++*++++++**++**+***++++++++:--++++++++++++=:++++++++++++++++++++++++++++++++-+++++++***++::::-::-:---::::-***++***************
+++::::::::::..:..:::::::.:::::::::::::::::::::=******+************+*********++++++++++==*****+++++++*+++==+++++++++=:+++++++**++++++++++++++++++++++==*+**++*****+:::::::::---::::=++++****+=++++++++**
++**=:::::::::-::::::.....::::::.-*:::::::-::::-*************+***************++*+++++*++**++*++++**+=--*++++++++++++==++++++*****+++**++++**+++=-+++++==+*****+*+*-::::::::-::::::-++++*+*++++++++++++++
:++***=::::::-:::::::::::.:....:::-:::::::::::::::=*****************+**********+++++**+++*+*++++++++++*++***+++++++++++++++++++++++++-+=+++++++++++++++*+*#**+*+*+::::::::--::::::=+++-++++:+===++++*+++
..=++*+:::::::::::::-=**=::-::::-*-..:::::::::::::::::-=+************************+++++++*+**+++++++++*++*+++++*++*+++++++++++*+++++=*+++++****+++++++++*+++++****-::::::::-::::::-++*+++++=+=+++*++++*++
-.:++*-:::::::::::-*******+**=+*=::+:-...:..::::::::::::::::::-+*#*************++++==++**+*+++*+++*++++++*++*+++++++++****+++*+++++=+*+++=++++*++++=.-+***+++*+*+:::::::::-::-:::=+*=+*++++++++++++++*++
-.:+*+::::-::::::+*****+********+*++***=++=-::..:.::::::::::::::::::-=+****+++***##*+++++*******++++++++++++++*+*+++++++++++++****+++++++++**++++++**+**********-::::::::-:::::::++*=*++++++++++++++++**
-::=+-:::::::::-*********************++==+++****+=--::::::::::::::...=-:-*#*++++++*++++****+*++*+++++++++++*+++****++++++++++++++++*++***++*+++++++++++*++*****+:::::::::-::::::=++*+*+++++*++*+++++++*+
:..+++=-::++*--+=.:+****************+=++***+=+***++****+=-:..::...-*##+...::::::::-=++*******+**++++**++++*++**++*++*+**+*+++++++++++****+++***+++++++**+******-::::::::-:::::::++*+++++++++++++++++*+++
-.:+*=:==++=====:...-+************+=+********+=+************+++##=:.:*--==-:::::::::::::-==+******++++*******+**+++*******+******++***+*+*+++=-=+*+++++++++***+:::::::::-::::::=***+*+++=++++++++++*+*+*
-.:++-::::::=+=..:-:::-+*********++**********+*+=******++++##+=++****=-::::::::::::::::::::--::-=++**++****************++****+**********************++++++++++-:-:::::::-:-::::++*+*++=+=+*++++**+**+*+*
-::+=::::::-+=..-=--=:.:=******+=***************+==+**+=*#=+++++++++++*****+=-:::::::::::::::::------::-=******+**********+**+*****************************+++::::-::::::----:-++++++===++*+************
-.:+-::::::==..------=-:.:=**+=*****************+++==++#=::::::::::::::::-=++*****+=--:::::::::-:-:::::----::-==+**************************++****************=::::-:::::::::==++====+==++*++************
:.-=::::::-+:.---===-----::-=+********************++=-#:::--=====-=-===--:::::::-=++*****+=-::::::::::-:::::::----:::=+********************#:=*************++::::::::::--::-++++++++++++**+*+***********
::=-::::::=-..---====-=----::-+*****************++++-*-:----===-----=-------==--:::::::-=++*****+=-::::::::---:-:-:----------=+************##:-***********++=::::-:::::--::+***+++++*++++**+************
.-+::::::-+:.---==-----=-----::-******************+++*.:------:---------=======-====---:::::::-=++****++=-:::::::::-------------::--==******##+=****=-=+++++-:::-:::::::-:-**********++++***************
.=-::::::==..--==--------------::=*****************++*.-==--=-------------=----=-=====-=------::::::--=+++****+=-:::::::::----:-:::::..:::-+*##=:+--::::::::::::::::::::-:=*****************************
:=:::::::+:.:-==-=--------------:::=**************+=*=.:=---==-----------------------------===--==--:::::--+**+=+++=+=--::::::::::::==.....-=+##*::::::::::::::::::::::::-+*********************++******
=-::::::-=..---==-----:-----------:::+*************+*+:.:=--------------------:::----------------------=--::::=++***###*+=+++=-:::::-:::+++==-++++......::::::::::::::::::-=++*********************+++++
+:::::::+-::------:::::-------------::-************+**=:.:=--=--------------::::::::::---------------===---=-::::-+*+++=+##+++*****+##:.:--=+*#######*=-:::::-=::.::.::::::::::-*************+**********
=::::::-+..-----=-----:::::::---------::-**********++#=+:::--==------------:::::::::--::::::-------------==---=--:::-++*+++#++**++=+++****+==###*-:::::::::::::::::::::::::::::+**********************++
-::::::++.:----=-------===-----::::----:::=*********+#==+=::--=-------------:----:::-::::::::--------:-------=---==--::=++++#+++*******++++=*##***=--::::::::--::::::::...::::::=****************++****+
::::::-++.------=----:--:::---==-------:-:::=*******=#=+**=::--------------:::--:::::::-::::-------:::---------===----:::=++#=+***********+##=++++++****+==::-::::::::::......:::::-=+***********==+***+
:::::::=+:--==-------:-------:-------:::::::::+****++*#+***=:::-----------:--:---:::::.:::::::::---:-:----------===---=--::-#++***********#***********++=++--:::+=-::::::.:::::::::::+=:::--=+**====****
:::::::+=----------------------:::::-::----:::::+++**+#*+****-::--------------:::-:::::-::::::::-:::::-----:----====--=-==-.*++****************************+++==******+=-:::...::::::-::::::::::--==+***
.:::::::-=-----------------==------:---:-------::-****+#*+*****:::-------------:------::::-:::-::--:---:---------====-====--#:++**************************++*+*++************+=-::::::::::::::::::--::::
:-=+=-::=+--------------===--===-----------------::-***+**+*****+:::-----------::-:::::::-:-:::-----------------===-:-==---#=:++************************+*+*+***++*******+***++++++++=--::::::::::::::::
::::.::-+++=------------------=-=------------==----::=**++#++*****+:::-----:----------:::-:::-::-:::--:::-:---====-====---#-:=+**************************++***++*++++++++++++++++++++++***++=--:::::::::
--:...:=++++=----------------=====-----------=-==----::+**+##++*****=:::::::----------------::-----------------==--::::.-#-=++++++********************************+=-::---:-----:::-::::--=++****++=::::
...:.:-=++++++=----------------=-=--------------------:::+*++#*+++****=:::----::---------------------------::::::-:--=*#+=++**********++++**********************++----===========--===---::::::--=++****
........:.::-==++----------------------:-------------=--::-++++*##+++**+-::---------:::--------------::::.:::-==+==+#*++*******++++++++++++****++**************++::-==-======---======-:-----------:::--
..........:::::::::-====---=-=---==-------:---------------::-***+=+##*+=++:::---:----::----::--::....::-++++==+###+++*****++++++++++++++==+++****++++++++*****++::-======--==----=-------:--:-----=---::
.............:.::::::::::::-=========-=---------------------::-++***++++*#**==:-:::::::::......::-======**###*++++++*+++++++++++++=-:::::::-+++***+++++++++++++=::-==-==----==========------------======
..............:..:.::::::::::::::--====----------------------:..-*******+++++--:=++*******###########**+++++++++++++**++++++=-:::::::-==---::=+++***++++++++++++::-=---=-------------------------------=
....:::.............::::::::::::::::::::-====------------------:..=*+*+********=:.:-=+++++++++********+++++++++++++==+=-:.:::::--=----:::---:::=++****++++++++++=::-===--:-:--------:--::---------------
...........::..............:::::.::::::::::::::--===--------:----:.:+***********++++++*********++++++++++++++++=-::::::::--:::--------::::----:::=+*****++++++++=:::-----:-----:::-:--:-:-:-------:-----
:::...............:--:.............::::::::.::::::.:::-===--------..=++++****************++++++++++++++++=-:::.:.::--::------::::-------------=-::-+*****++++**=++=::---------:::----::::::::--:::--:---
:::..:::::::............:-=:............::.::::::.::::::::.::--:::++++++*****++++****++++++++++++++=-::::..::--:::::::-:::::---:::::------------=-.:-+*+***++++++++=:.----=------::-::::::.:::::::::::--
:::::::::::::::::................::.....................::.::::...::===+*+=++*+**+++**+++++==-::::::::-----:-------:::::::------::-----:::::::::---:::=+***+++++++++=::------------:::::::::::::::::::::
:-==--:::::::::::::::..:..............:--:............................:...:-=+**+*+++**+++::::::-----:::::::-----:----::::::-----------------:------::::=++****+++++++:::--------:--::::::::::::::--::.:
----=---===--:..::::::::::::::...:..............:........................:.::...::=+***+**++=::::-------:-------::--------:------------------::--------:--+******++++++-::----------::::::::::::::::::::
::::::::------====--:::::::::.::::::::::............::::......................:::......:-=+*=-+-:::------------------------------------------:--:-:----=-::-+*****+++++++-::---------:::::::::::::::::::
..:::::::::-----------===--::::::::::::::::::...............................................:::-=+------------------:-------------------:---------:::::--=-::-+*****++++++=:::--------::::::::::::::::::
.......::::::::::::::---------==--:.::::::::::::::................:::...........................::::::-===--------------------------------------::--:------=-::=******++++++=:::--:::---::::::::::::::::
.:.....:.:::::::::::::::-----------==----::::::::::::::..::......................................:::::::::::--===---------------:--------------:--------------:::=******++++++=:::=----::---::::::::::::
......:::::::::::::--:::---::-::::::-------==-:::::::::.::::.::................::::...................::::::::::::::-===--------------------------:::::---::----:::++*****++++++-::----------===--::::::
========================================================================================================================================================================================================
========================================:::::--:::::-=::-=====-::====-:-====--=====:::::-=====::::::=:-===-:-:::::::=::::::=-::====:-==-::::-==-:===-::::===-:-====:-===================================
========================================:-====-:======:::=====:::====:-.====:-=====.-=========:-=====-.-==.-====.-===::=====-::-===::=-.====.-=::==:-===-.==-::-===:-===================================
========================================:-====-:======:-:-===-:-:===-:=::===:-=====.-=========:-======-.=:-=====.-===::=====-:=:-==::==:-======::=-.=====:-=-:-.===:-===================================
========================================:::::=-.::::==:--:===:--:===:-=-.-==:-=====.::::-=====:::::-===-.-======.-===:.::::=-:=-.-=::===-.:-===::=-.=====:-=-:=-:==:-===================================
========================================:-====-:======:-=:-=-:=-:==-:===-:==:-=====.-=========:-======-.-.-=====.-===::=====-:==-.=::======::==::=-.=====:-=-:==-:=:-===================================
========================================:-====-:======:-=-.=:-=-:==:-----.-=:-=====.-=========:-======:-=-.-====.-===::=====-:===::::=-:====:-=::==:-====:-=-:===:::-===================================
========================================:-====-.-----=:-==-.:==-:=-:=====::=::----=.-----=====:-----=:-===-.-===.-===::----=-.====:.:==::--::==::==-:---:-==-:====:.-===================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
==============================================================::--:--------------------:-----::::---:---::--------------------------------:=============================================================
==============================================================--:=====================-:--=========--==========--:-====================----=============================================================
==============================================================-=---===============---==-===========--===========--==---==============--=-=-=============================================================
==============================================================-==-=--==========---=====-===========--===========--=====---==========-==-==-=============================================================
==============================================================-==--==:-======--========-===========--===========--========--======--==-===-=============================================================
==============================================================-===--===--==--==========-============-===========--==========---=--===-====-=============================================================
==============================================================:====--====:-============-============-===========--============-:====--====-=============================================================
==============================================================-=====--=--=--===========-============-===========--===========:==--=--=====-=============================================================
==============================================================-======---====--=========-============-===========--=========--=====:-======-=============================================================
==============================================================-======--=======--=======-============-====================--======----=====-=============================================================
==============================================================-====--==:========-======-============-==================--========-==--====-=============================================================
==============================================================-====-====-========--====-============-===========--====-=========-====--===-=============================================================
==============================================================-===-======-=========--==-============-===========--==--=========-======--==-=============================================================
==============================================================-==-=======--==========---============-===========----==========--=======-==-=============================================================
==============================================================--::---------------------:------------:-----:-----::-----------:----------:--=============================================================
==============================================================-=-==========--==========---==========-=========--=-==========--==========---=============================================================
==============================================================---===========--=========-==--========-========:-==-=========--============--=============================================================
==============================================================--=============--========--===--======-======--====-========--=============-:=============================================================
==============================================================---------------=-------=------==----::::::--:===----=====-=--===-==-====-===:=============================================================
==============================================================--===============:=======----::-:--:=-:--:----:::-=-=======-================-=============================================================
==============================================================--================:-------::--:-::-::-:-::-:--:-::-:-------=================-=============================================================
==============================================================-----------=---::---=----:-:----::-:--:--:-:--:--:-:=--------::-------------:=============================================================
==============================================================--====--::::-:--:-::-:--:--:----::-:----::-:--:--:----:--:-:--:--:-:::--====-=============================================================
==============================================================-::::::::::::::::::::::-:::::::-::::--::::::--:-:::::-:::::::::::::::-:::::-:=============================================================
==============================================================--:-------::-------------:-----------------:--------:------------::---------:-============================================================
==============================================================----:--:--------------------:------:::.:::------::----:--------------:---:--:-============================================================
==============================================================-:---::----------------:----=::----:......---=:------:---------------=-:---:--============================================================
==============================================================--:=:--:---------------=----:------:......-----=:--------------------:--------============================================================
==============================================================---------:------------=--:--=--=---:......=-------::---------=-------=----:---============================================================
==============================================================--:------=----=-----------:-=------:......-:=------:--------------------------============================================================
==============================================================-:--:-=----=--=--=----=:---:=----=-:......----------=:----=--=-=:-=-==---:=---============================================================
==============================================================-:-------=----:------:------:--=---:......-------:-----:-----=:---=----=--=-:-============================================================
==============================================================----------------:------------------:......------:--------:--------------------============================================================
==============================================================-------:-----:----:-------:--:-----:::::..-----:-----------:=---------:-------============================================================
==============================================================--------:-------:---:--------------:----------:----:-----:-----------:---:----============================================================
==============================================================-:--:::.::--:.:.:---:.:::-:-:.:.:--::::::.---:::::---:::.:=--:::::=-::::::=-:-============================================================
==============================================================-:-=:....=--:....=--....:---....:=::......:--.....=:-.....=--....:---.....=---============================================================
==============================================================---=:....---.....---.....::-....::-:......-:-.....-:-.....=--.....---.....----============================================================
===============================================================--:--=-=:---=--==----==-=:---==--::......-::-====::=====---==--=-=:-=-=--:---============================================================
===============================================================---:--:------=--:----=---:=--=----:......---:==:---==-==---:=-=--=-=:-=-:=---============================================================
===============================================================--=:....--=:....---.....-:-....:--:-=-==---=.....--=.....---.....--=.....=---============================================================
===============================================================---:....---:....---.....-:-....:--:----:----:....-:-.....---.....---.....=---============================================================
==============================================================--:-:....--::....---.....:::....:-::--::=--:-:....::-.....---.....::=.....-:--============================================================
===========================================================-::-:--::::-----:-:--:-::-:--:-:::::::::::::.::-::-::-:=::-::::::::::-:-:::::-::---:=========================================================
========================================================-----:----:---=---::-:--:-------:--:---=:::.....-:---=---:----:--:--:-::-::------:=----::-======================================================
=====================================================-:-=----:---=-----=--:--:---=--=---::::----:-..:.::::---:::::---=---:--------=--=::------:----:-===================================================
===================================================-:----------:-------------:----------::::----:-.::.:.-:----:--:-----------=---:----:---=--=--------:=================================================
================================================-:-=------------=--=--=----:-::-:-------:---=-:=--......---:-=---:=------:-:--:---=---:-----------=-----:-==============================================
==============================================::-:--::-:--:-::-:::::::--:-:-::-:::::-::::-::----:-.....::-----::::--------------------::---=-=---:=--=-----:============================================
==============================================::----::-:------------::-:--::::--:-::-:--:--:----::......::-:-----:----:--:----:--:--:-:----------:----::------==========================================
========================================================================================================================================================================================================
---------------------------------------------------------------------:.....................................................................:::----------------------------------------------------------
---------------------------------------------------------------------------...........................................:::-------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------:::.:::-----=-----------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:-::::::::::-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:..::::::::::::--------------------------------------------------------------::::----------------------------------------
------------------------------------------------------------------------------::...:-:::::.:::--------------------------------------------------------::::::::::--------------------------------------:-
------------------------------------------------------------------------------::...--:::::.:::---------------------------------------------------:::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---::::.:::--------------------------------------------:-::::::::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---:::-.::::----------------------------------------::::::::::::::::::::::::::-------------------:----------::-------
------------------------------------------------------------------------------::...---:::-.::::---------------------------------------:::::::::::::::::::::::::::--------:--------------------::::::::-:
------------------------------------------------------------------------------::...---::::..:::--------------------------------------:::::::::::::::::::::::::::::---:::::------------:::----::::::::::-
-----------------------------------------------------------------------------:::...---::::..::::-------------------------------------::::::::::::::::::::::::::::::::::::::-----------:-::-:::::::::::-:
-----------------------------------------------------------------------------:::...:-::::::.::::-------------------------------------::::::::::::::::::::::::::::::::::::::----------::::::::::::::--:-:
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::::::----------:::::::::::::::::-
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::---:----------::::.-.::::-::----
-----------------------------------------------------------------------------:::...::::::::.:::::------------------------------------::::::::::::::::::::::::::::::::::::------------:--::::-:---:::----
----------------------------------------------------------------------------::::...::::::::.::::-----------------------------------.:--::::.:::::::::::::::::::::::::::--::--------=--:-:.-:::--:--:----
----------------------------------------------------------------------------::::...::::::::.:::::---------------------------------.:::-::::::::::::::::::::::--:::::::::::---------=----:.--::--:-------
---------------------------------------------------:..::--------------------::::...::::::::.::::---------------------------------:::::--::::::::::::::::::::--::::::::::::--------==-:--::::::--:-------
----------------------------------------------------------------------------::::...::::::::.::::---------------------------------::::::::-:::::-:::-::--::::--:-::::::::----------=-:---:::..--::-:-----
----------------------------------------------------==----------------------::::...::::-:--:::::----------------------------------:::--::-:::::-:::------:::-----:::::::---------------::--.::::--:---:-
----------------------------------------------------===---------------------::::...::::::--:::::-===-------------------------------:-----:::::-----------:--:---::.:.:::--------------::----::.--::::---
---------------------------------------------------=+++=--------------------::::...:::--::-.:::--------------------------------------:--:::--------.--------:-:---:::::-----------:---:-:-:::::::::-----
----------------------------------------------------++++--------------------::::---::--=-::-:::::------------------------------------------------::-::-:----::::--::::::----------:---:::.--:.:::-------
----------------------------------------------------=+++=-------------------:::---:-:-=--:---:--=---=--------=----------------------------------..:.--::---:::-:::.:.::::---:-----:--:::::::::----------
----------------------------------------------------====--------------------:-=---.:-::-----------=======-=-------=--------------------------::::::::::-----::::::..::::::---:----:---::-:.:------------
---------------------------------------------------:----------=--------------=---..------=-------==========-------=------------------------::::.::::::--::--::::::::.::-::::-:-----::--:::--------------
---------------------------------------------------::==:-----------------------::--==------:=-=-:--=========---=-------------------------::::::::::-:-::--::::::::::::-.::::::---:---::::-:-------------
-------------------------------------------------=-..:==:--------=-----------:::...---------------=-----=====--------=-----------------:::---:::.::::::-::.::::::::::::::::::-:::-:-::::--:::.:---------
----------------------------------------------------::--------------------==-::::.:---------=-::---::::-=++=---------=---------------:::::::::..::..::--:::::::-:::::.:.:::::-:-:--:.::::..:..:---------
-----------------------------------------------------=--------=-------------::-------:::::::.::::.......:-==--=---------------------::::::::....::::.::::::..::-:::::::::..:-:::-:::---:.::...::--------
----------------------------------------------------+=--=-------------------=---:----:::::::.-:::::::::-----==----------------------::...:::...:.....:::::..---:-::-:.::.::.:-::::::::-:::....::--------
-------------------------------------------------------------------------===------:-::::.::...........::=----=-----==----------------:....:.........:....:.:.:-:-:-::...:...::::::::::::::::-:.:--------
------------------------------------======------------------------------------:::::::::-:::...:....:::::::--=------=-==-----------:::::......................:::::-::-.....:.:::.::::.::-:::::----------
-----------------------------------------=====------------------------------:::::::::---:::.:.::::::-::::-----==-----==---------:.::-::::..::....::.........:-:::::::::......::::::.::::::--------------
---------------------------------------------------------------------------=-::-------::::::::.:::::--=:-----=------------------.:.::--::::::::::--::......:-:-::::::..:......::::..::.:::--------------
---------------------------------------------------------------------------=--==-:----::--:::.-:::::-----------=----------------::::-:---:-:::------::....:-:::::.::..........::::.:::::----------------
-----------------------------------:--------------------------------------=--::::..------::::---::::-----------------------------::------:::---------:::.:--:::.:............::..::..:------------------
-----------------------------------::---------------------------------------::-=-:---=-:-::-+==--+++----=-------==----------------:-::::-:---:-------:::---::-:..:............::..::--------------------
----------------------------------::::-------------------------------------:-=-==-..:----::-:----------=-----------------------------::-----:---:------:::.:----:::..............:----------------------
----------------------------------::::---------------------------------------=---...-:::=-==-=-::-==-----------====------------------------:::-:::-:----:.:-----:..:.:........:..::---------------------
----------------------------------::::-------------------------------------:::::::-=::-::--:.:--:--------=----==--------------------------:::::::::-----::--:::-::....:::...:::::::::::-----------------
----------------------------------::::-------------------------------------:::::.:-==-:----.::-==----------------------------------------.:::::::::--------:::::-::..:...:::::::::::::::----------------
----------------------------------:::--------------------------------------:::::...--::::-=:.-::::-----=-===-----------------------------::::::::::::::---:--::::-:::.::::::::::::::::::----------------
---------------------------------------------------------------------------:::::....:::::-----:::::---------------------------------------::::::::::::::----::::::::..::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.....::::---=----------------------------------------------:::::::::-------:::::::::.:::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.-=========------==========------------------------------------------------..:::::::::.::::::::::::::::-----------------
--------------------------------------------------------------------------:::::::================----=----------------------------------------------------:..::::::::::::::::::::::---------------------
-------------------------------------------------------------------------:::::::.=================--==----------------------------------------------------:::::::::::.::..:::.::------------------------
-------------------------------------------------------------------------:::::::.=====================-----------------------------------------------------:...:::::::.:.::::---------------------------
-------------------------------------------------------------------------:::::::.=====================------------------------------------------------------:...:......:::------------------------------
------------------------------------------------------------------------::::::::.=====================--------------------------------------------------------:.....:::---------------------------------
---------------------------------:-------------------------------------::::::::..======================-------------------------------------------------------------------------------------------------
---------------------------------:------------------------------------::::::::...======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------:::::::::...======================-------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::.::======================-------------------------------------------------------------------------------------------------
------------------------------------------------------------------------:--------======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------======================--------=====------------------------------------------:::::-------------------------------------
-------------------------------:::-----------------------------------------------======================--------=============--------------------------------------------:-------------------------------
------------------------------::::------------------------------------------===========================--------===========--===-------------------------------------------------------------------------
-----------------------------::::::---------------------------------===================================--------===============--------------------------------------------------------------------------
---------------------------::::::::---------==-------------------------=--=============================-----------------=========-------------====================================-====-------=====-----
--------------------------:::::::::--------------===========================---========================----------------------========================================================---------=---------
-------------------------::::::::::::::------------====================================================--------====================================================------===========--------------------
..+#############*##**++++++..:#+-###--##*-##*-:--**#***+++++****--...:*########*++-*#*+=-=*:.:-+#####=.....:=.:###*###################*::-++...::::::::::::::::::::::::::+#-=###########+::+-###+++*####
..:########**+++++*####**####..:###--####=-*###*=+*=-==*****###=.*-+**++++++*#*+-...--==+-:::=###########=:....:+#=####################::::=+=..:::::::::::::::::::::::::*#*+*###***++=.-=:-:===++######
..:#####++++*################+:.-#-=#######*-################++.*++=-##+-..:=*+===++++**##=:+################=......+#################*-......::::::::::++-::::::::::::::::-=++++**##+:...:--+##+++*####
....+=..-*######*+#########:=*##:.:########**+#########**++*+=:..::-++#####*-::+######-*#*-=+++********#######+..+:.....=########*++*###.........::..:::++-:::::::::::-=+++****--:=+*###:..=####++++####
.....-#####-=##-:-:*#######+:.-*-=###########*-#*+--::::-=+######:=#=-+*+=::-*##########*-*:#*******#**********+..+**=:....:=++*#######*............=::...:::::::-=+++--=###*+-=*=-:=#*-=-..+###*+++*##+
.....+#########---:*###*..+#+##=:*###-*#+-:...--##################==:-*+-:+#-##############:*#**=::=#########*++-..:++#**=:.....=######...............:...::=++++-::::*=..-*+######*.:-+##=..####++++=.*
...=##########-:-:*#+.=----*=+=....-:+=######+##=##############=-*##=-::++=:=**#*********++:==:-=+=-##***+++===+**:..=+++=-=**-.....-=:.................=++=-:::::::*####+:-#####*-+::---##..*###++:.+++
*#########+::-:*=-##-..--..:-*=:*##=##*##########=########*+=+###=#*====--=====--========-::-===+*#*+-+########****+.....:-=**--=.......=*#*++-:=+-........:::::::*########+-+*==*##**:--*#=.=##*::+++++
###########=-:+#:=*:-#####-:=#####=####+######**++:+*#*--*#######*-###-:=+########*=*##**-::-+=+==*=:=+:-=#*=*########=:.......-*==++=....-++=+#*:.............*####**#*+--**:-###+*#*:--*##..#.-*++++++
#########==#:+#+::-*########=####=##==+-*########+--*##########+=###+:-*###########+:::::=#=###*+--*##*=+:+:+#########=...=*#########*++=-......:+*=............=*+**###*#==##*-=####*::*###-.-####*++*#
###########-+##--*##########=###=*=####+*###*+=+###+#########+=##*=-=**==*######*-:-++==:::-*#*--**+*####=....:+#################*++*=-*#####*-.....-+...........#######+*#***##=-*##---##=.=.:#########
##########*:#=::+###########=##=#+######-:-#########*######=+##+-==*##*==#####+::+##*-###-::=-:-*######*........-############*++*##*:*########****-.............=####=.-.....:=....=#--*=.###..*########
##########+-:=+-####-:######=#+##+**==+#=*###########+###-=#*====-+#####-**+-:-*###=*#####*::-###*++###-.........*######**+*+=###*-+####***##########*=........+=-::*#######+....:......*###-=.+########
##########--*#-+###*+++++**#+++*+-+=####+#############+-+####====*######*-:-**+*#*=###**+#-:-::*#####+=-..........+#**+**#++####+-##***-*#**##############=.....::+###*###*........:.....-##....########
########=::*#*:*#####*=++###=.+##+-#####*############:*+####*==-+########-::.###+=+#+*###=:+#=::*#######.::.....:++*####=*#####-=#+################++#+######*:......+###=...........:-....#*...=#######
**####*:=*:##=-#######*:=-=***###########+########+-*###+###+===##########=:+##==*=**+**-=-*##*::=#####-....-=+=:.-###++#####*-+*############....:####+####-=+####+:....................:..:#-...#######
##*##--##*-##:+#######=-++###+###########+######=:+######+##*==############-:+-+=*###=:-===#####-:-###=-=++=:...-=*=++######=+##############+.....=##+**+:=*#+########+:..................:.*#...+=--+##
###=:*###+-#+:######:=+#*:-##=###########=####-:+#########+#*==############=::::+::==++:+*##++-*#=::-++=:=#####=###*--####=:#######+######*+#:.....=##=+=*###*-#########=..................:*#-..:=--*##
#*:=##*##==#-+####*:-*####=:+=*##########*+*-:*############*+==###########*+-----:::::=#*####*--=++=-:+#######+-*#####+==-=##########*++*######....=-*#######*-*==-=+###+...................=*#=..--=*+=
=:*####**==*:####*.=#######*::=##########*:-*###############-=-*#########=:+-::::::::*##+###*++==--=-::::::###:-=####**=:*#==*####*+##*#########+==##+*######+=#####==+.=:.................==-=+..---+*#
-*#######**=-###*.=##########=:-:-+**-::-=+#################+==*#######+=:*-::::::::-##**++**::---:+:::::::=####=+*+*=:-#+=####--######.+#####*:#*--*########+*+####+.*+-+....................+*=.:-+###
#*=######==+*###-+############*=-:::::-+*#+##################==-::-=+**=####++#*+==**+*+#####+--+::-#*:**=:::::::::-:::===+:=-=+*-.-+##=####===-+###########*+#+##=.*###.-+:............:#*-.....----+##
###++####=::#**################*##########**#################*-=+####+##########*++*###+####*-*##############**=-:::+++*+-+=*-+=-:.....-+-..:+########+:-###++#*:.####-.+:::.........:+#######*..:.-.::.
.####-###=:+###*+::-+*#########*###########+##################+=-+#=+#######*+*#*+*####*###+-*###############+**=#####*=#+####+.####*:....=-*#:*#:#-*-:*####++:-++-::.::::-*#:...:##*=#########=-#+-....
.=####+=#=:*##*::=+-:::::--+*##+###########=###########==*#####==*=####**+****+*######*###+=###############**###::+##=*+#####:##+=##+-*#:...+*=-.*##.+##**=-..::::::::-=+*###*+###*=**=#######*=.#==-::.
#.####*#=--:+#*::::-+=:::::::::::-+*#######+############*######*-+##*++++*#**#########*##==##############**#####-:+=*+*###+=+####*::#####=#:..*##+-:-:-=+=.=*###=+*##################=*=#####*+#=+==*:::
#+.######=:=:*##=:::-==*=:::::::::::::::-=*+*#################*-=++*####*+############+#==#############**#######=*-*+##=*######-:###+-####=*=...+-+#*-=-.*#**##+::=###################*-=##**+*##.==##=+
##=:#####=*-:-#######**=-=+=-:::::::::::::::.::-=+*##########=+#*-*##***##############+==############**#########=++#*=######+:+####*+=----*##---..*##.:*#*===+=-:=######################+=**+*###+-+*+=:
###.-####=###############*+**+*+====--::::::.:::::::::-=**#*-####=++*################**#############+##########=+*#=#####*--*+===*######+=*==*###=..:=+##*--::-==:#**########*######***##++-+##**+++=..:
####.+###=#################*++**++##***++***+++++*****-:::::::-*++=##################+###########*+###########-+*++##*=-:+############+:########*.......*#+*+#**+++++*******#**+****+++++++++++*---::::.
####*.###+######*########+*#####*+*++*####**+---=****+::::::-=-:::=--=+*#############+#########**###########*:===-**+==*#########*+=====+++***=.+####..:*+++**+=##+####******###########**#=*#+----.::::
#####*.##+##############**#######=####**#####=####*=-::::-==::::::--::::::::-+*######+######**########*+=-=+=###.=+-+#####=+--=*############=.*####*++=...#+:::==-:-=*#################=####==-::--:.:::
######+.*+#############+*+*######=#######+####=#######-+**+=:.:::::=-::::::::::::::-=+###*+###*+==+*######=*##.=+-####+:+#################-.##*+*#####*-*...*+**###*###*+=--+#####*##*.###*=-:::::.:..:.
***+++:..+**********#+*##########=*#######++*#**####**######+###*+=-=:::::::::::::::-::::--:=*###########-+*-:-+##+=+###################-:++*#######**+=-*#-..=*###=.........**=-------:--:-::::::.::..:
########=.#########*+#****+++++++++****###:=##++#**=*######=########=*##+=--:::::-:::::::::::::::-=*###==++:..##:*####################+**#+-##**+**##-::=##+#=...+...........-:--=+=#+::-=::::::....-..:
##:######..#######**#############*=..-#...**+++*++++++++**+*########+=##*===+***=-:::::::::::::::::=:::::--+.+-*##################*+:+#**+**#######-::+==##+####-........-......##*=*######+::.::..:::::
#########=.:######################=*..:=-.:+:.:**=+**##+=#####**+==+++++***********#+*+=--:::::::::::.:::::..::--+*#########**#*++=+**##*++=-::::::::+**:##+##=+.....:..........=##**..............:::..
**########-..###################*++=....***-:.....*#*#**#*+=-=*#####*==######***++++++++++++++++++==-=--..-::::::::::::-+**++++-.-+--:::....*=::::+#*=::..++#....::......................:+#=:---.:::::.
***#########:.#########***+++**#...-##########:*+....+**#**##########*=*#######*###*#######*-:------=.:+++++++++++===--::=+-:..:-***###**#*-:::::=#####*=+=::::-:...............*############::.:.::::::
***#########*..*###**++**###++-..:=*######*+=-+-*##+..=#####**########==#######**##+#####+:.:::::...::=*.-:.::::::::::-+=::..::::::::-=--::::::=######*#+=*--=:.:..............=##+*########*#:...:::.::
**####=.#####*:-+++*###...#+....##+++--+*##+-########+..-######*+#####*-*#########*++++-::::::::..::###::##########+=+:::..::::::::::::::-==-:::::::-++*-:++####:.............####*#########=*.+.::.::::
+###########*+*:..#####-.==...:+**+*######-+##**#######*-.=########==-*==##########+=::::-:-==:..+####+.#########*+*##+.+**=-::::::::::::::::-==-::::::::::-+*##*..........-*##############=#.:=+=--:::.
*########*++***##...=+=-.....#####++####*-**********######*..+######+*#+-+********=::--==-:::.:.######-=######*+*###=.=*###=:=##+-::::::::::::::::--=-:...:::::....=:::-:==--*#####**+--::.-:.**#*=*--##
#######*++*###=-=*+........#######+*###+-************########*..########=-#####+......:::::::+=+#####+.#####+*####=.#=::#*-:*######=::::::::::::::::::-=-.:::....::::::-::.::::.-*#######-##.*####=##+##
######++*######*####*=:+*#########+*##==*******+-:-=****########+..#####*=+##-::::::::::.-*=+=:######.+##*+*####-=#######--##########*--=++--::::::::...-:::-:...:+====-==-::::::.:-=*#=+##-:#####+*:::=
####*++########**#################=+#==#******-::::::***#######-:##=..*##==-.::::::::::+##=++-######+.*+*#####-=##*+-:::::-::::-------=-::=--++=:::....::.....:-==-:=-:-::-::::::::::::-*##.*#####*+:::=
##*#+*##########*###-=######**+*++++++++*****:::::::=****###**#+.:###*...-==-::::::.-###*=*.=#######++######.==++#####-:=#-+#####=:::..:::::-=*###*.+#-....::::::::.:-:-::-:::::::::::::::.-######*++=#:
##*+*############+#==**++***######*:+####***-=+++=+*****##***+##-:-##::::...=-.:.:*#***=*=.######*+*.=*++=:*######*..:::-==+**#######::-=::::-+=-::.....:.-++++==:::::::::::::::::::::::::.-=++****-.*:+
##+*##############+++***+=-::::-=+:-*#####*::::::***+++***#######:::.::::::-:..:######=::#####*+++++.+*+.=----...=++-:=############=:+##*:=###+.....-:.=-+*########-.++--::::::::::::::::.:#########-:**
#++############+++#+######*:=####--+#*+=:......:**####*##*++*=.#+::::::::::.:####*+++=####*+=:::-=*+.:-#######:.....::.....=####=:=######--###*....:=+*::++########=.+#=#*=##+:::::::::::.*#########..#=
*+##########*++#####+######+*##*-=-*#####-::::=****+==-::::-=+=++==-::...:+###*=-...-==++*#+*#####*..:######-....=*+:==:.::*#+:=#########+:*########+####*-:+#*####+.-#=#*+###*+###**+++.###+####*#:#:-:
+#########*+*########..=*#####*-+--*####+::::-+###*########+:::.....:-=++++++++++++++*##++######*::...:.=*=....*#*:::*##*=.::+############:-########+#####+#-:-*###+...:.::...:-+######-=######**#::::::
*#######++*######.+##*....................:::=***########-.::::::::::+########+=-....::+*#####*.##...........*###=:::-+-::-...#############-########+#*..-*###*:::.....::::......:.:##*.#####+*#+.::::::
######*+*###############+###*--#=:+######*--=*##*******+::::::::::-*:###########*++*######*+::-:::.........-#####::::::+####-.:#############-######**##=-=*###=..::::..:::...........::=###+*==+.:::::::
*####++*####=.:##########+#*---::-##################+*##.......:+#++:*****+++*####+-######:-######=.......=::.::--:::+#######=..*############-*####**####+##*.:....::::::::.......::::.::=####*..:::::::
+++*++###*##...=##########-:::::--###############+*######:...=######:############:+####*.+############+###############*+=:....:..=+*##########-*###**####+#-.........:::-::::.:::::::.::::==::..-:::::::
+++++#######=...########+--::--+##############*+####################:###########:####-.+################################**+**#+======---:::--=+-=##+#####*-..........:.:--::::.::.::..:::::::..+*-::::::
+++++#######*...=#######----:::*############+*######################:##########:##*..#################################+-===============#########+-=-:..:-:...........::.::::::::::::.::::::::.:*###***##
++++++#######:..=######------:::#########+*#########################:#########*::.:################################+-==================###########:+####=::..............::.:::::::..::....:.=##########
++++++########:.:####+--------:--#####*+*###########################-*#########:-################################=====================+############-*##++..............::...................:###########
++++++########*..*#+:---------:::+##+*##############################=*######*.=################################*-====================-#############+#++#-...............:....:......:...........:-=+*###
++++++#########*.++-------------::+#################################*=####*.*#################################*=====================+##############+####-................:...:..............=##########*
+++++*###+######=.:-------------::=##################################:##+:*####+.*############################=======================*#############+####=.................:.................+###########
+++++*###########..---------------=##################################==*######################################=======================*#####==-*####*####*..................:................############
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::::---------------------------------::-------------------------------------------------------------------------------------
---------------------------------------------------------------------::------------------------------------------::-------------------------------------------------------------------------------------
--------------------------------------------------------------------::----------------:::--------::--------::----::----:::------------------------------------------------------------------------------
--------------------------------------------------------------------::-----:::::::--:::-::::--:::--:::--:::--:::-::--:::-:::----------------------------------------------------------------------------
--------------------------------------------------------------------::----------::-::-----::-::-----::-::-----::-::-:::-::::----------------------------------------------------------------------------
---------------------------------------------------------------------::--------:::-::-----::-::-----::-::-----::-::-::::--------------------------------------------------------------------------------
----------------------------------------------------------------------:::::-::::----:::-::::--:::--:::--:::--:::-::--:::--:::---------------------------------------------------------------------------
--------------------------------------------------------------------------:::---------:::-------:::-------:::-::--:----::::-----------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------::----::----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------::::::-----------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------::::-:::::-:::-:-::::::::----------:-:--:::-::-:::::::::-----------------------------------------------------------------------------
----------------------------------------------------------------------------------------:---------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
********************************=**************************-+***+=-:-==**==****-*****=-=++=++=*+=--=+=**=---+=:+===++++=+-*+=-+*=+-*+=+-+**+=-*==++=+==+---++=+=****************************************
********************************=**************************==+*+=+++==**==*+**=--==-=--=-=*+=+=*+=====++-==+=-+-==***=++++++=*+===+*=+=::=+=+=-=+---===+=++-===-=***************************************
********************************=**************************=+=+====+=+===-+==-=--=-+++==+=+*+++=*+=:==-==-=:=-+=*+-=--==-=-::::--====+-++:=-=:=+==+=**+=*+-*++=+=+**************************************
********************************=***********************+-+===-++-+==+-+=+=+==++++=+=====+++*+=+=+=*--++**************===-=========--=-+=++-**:***+=**==*==+-===-+**************************************
*******************************=+*****************+===++****+++=-+====--==**+-+*+--:=++=-=++-=--=--+********************+::=======++=-++-*-+*==+*+=+*==++===+=+-==**************************************
*******************************=+*************+==+**********+-:=+-====+:=+=+=--:-=-===++==++=-===+***********************+=+=+=======+=-+==*+-+=+=+=+++==-==-=-=+==*************************************
*******************************=+**********+=+****************-::+=+==+--+===+=+:++==++++=--==-+***************************==+=+======-=+-++-=-=-++=:++-=+=++=+-+=-+**+==+******************************
*******************************=+******+==+*******************+---+===-+--=+:---=+*+=+===-==-+******************************+=+=+++++++==++=+--+**+-+*+-*+-++=+==:-==+****+=****************************
********************************=****==************************+-=:++:+=-====+====**+=+==++=**********************************+--=+=-==+*=+*+:+=**==**==+=++-==:.-**+====***=***************************
********************************=**=+***************************+++=:=+-=--::-=+===+++--===************************************=**==******++:=+++=--+=-==-=-=-+=-.::::::-+**=***************************
********************************=+=+*****************************-=-====-:---===*==+=-===+*************************************+::::::::::::-+**=::=:=+:==:+=++=--=+***+:+**=***************************
********************************+=********************************=+=-+----+==+-=++==**-+****************************************+=+=**=-=--=+*==::=**+=++=+=+-++---***-:-+=+***************************
*********************************=********************************+--:=.--+**=-====-=-=+*+=***********++-===+*********************=++=++*****=+=--+-=====:+=-===---:=++-==+=+***************************
*********************************+=********************************+==-:=+****=-+==++=*****+++***+=::-=-:+=-+---+*****************=:--:--------=-=+-======-==+--+:-:-=-+==+=****************************
*********************************+=*********************************+.:+=******=.::--+*******+=+--=+:=+=-*++***+---****************+.::.......:.=+.=-=:--++====+:.--=-:*==++****************************
**********************************=+********************************+-=-+++++++=-==-+*******+-==+**-:==::=---=----::-=**************+=++-=++++++=-:==:-=-===:+-=+=--+-.:+==+****************************
**********************************++**********************************+==+****++==+******+=-+--====--===-=*=.=++*****=-=++***********+=--=--------+=--===++-+-+=----:-=++==*****************************
**********************************+=**************************************-=+-==********=.:+****+=-+=:+==--*=-=+=***+:+*+-************+--:---------=.--=-+---+--+=--=.:++-******************************
***********************************=+***************************************++*++*****+:=------:==+=*=:+===-*=:=+=**--**:--=***********+::::::::::::-=-+.-+===-=+--=.::==-+*****************************
***********************************+-***************************************+=**=+***=::=+++++=====+=++:+=+-::+:-===:+*--*--+***********=::.::::::::--+---:-==+:-=:..:---=******************************
************************************=+**************************************+=**++**+==+*****+=++=====++.::-----:-=:-=+:*+:-=***********+--==+========+-+-=--*=-*=.:.---:=******************************
************************************+=***************************************=+**=+*=:=++++++-+-====-=:---------------:++:=::*************===-========:+-=--==-=+-:-:---.=******************************
************************************+=***************************************=+**+=+:-=+***-=+-+==+=-----------------:+=-=:::**************==-=======+=-=-=+--+-----:=::=+******************************
*************************************==***************************************=***=+=+==**-++-*-+=::------------------:-=:..:***************:----------==-+=:+=:=-==.:-+=+******************************
*************************************==***************************************=+*+=*=+*=+:+**+:+--:-----------------------:-=+**************+-===++====--*=.:=-+-=-:--:=:+******************************
*************************************=+***************************************+=+-=--=====****+--:---------------------==-:+=+***************+=*--+*****++.---=-+-:-::.:.=******************************
*************************************=*****************************************+=++=*-+***++****=----------------------==-=*=+****************...::::::::::=+====----....-******************************
*************************************=+***************************************++=+=***=+**==+++==----------------------=:.::=*****************+==+=++++++-=++=-=-:--.....=******************************
*************************************+=************************************+==*-++*****=+==++++=:--------------------:=+-.::*******************=++===*****=+-=-:+*:..-.:::******************************
**************************************=+*******************************==++****-:----------++++=---------------------=::::-=+******************+---:-------:==+-+=:.-:...:******************************
**************************************+=*********========+**********+=+*********==+****=-:::::::..------------------==+:--=**=+*****************===-===++++--*+==-::-:::-=+*****************************
***************************************+=*+==--=***+-:..:=++-=+***+-**************+=++--...........---------------=+--=++******=+****************=+-=-=++++=+*-+.---:.-:+=******************************
****************************************+=+*********+--=---+***-+=+*********************+:........-------------:-===:=-+*********+=**************=+==+******+=-:=+-+..===+******************************
***************************************++*****++===========:.::==*************************=:.......--==-:----=--=-:===**********+++==========+++++*-:==============--.::=*******************************
**************************************+=**++-:=:=========:.-+**=+*************************+++:::::::::::==-:=:=:.==++=-======***********************+=+++++++--==+-+-==*********************************
**************************************+:..:=++=+++---::-++****+-***************************+**+=+*+------:---:-:+***********************************=+*=+***=---:=-+-==*********************************
**************************************+.-+***=+**+==+********=+****************************=+****-+****++*==-+************************************++****=+=-++=++-::-:**********************************
**************************************+=***+=+==+*********+=********************************=+***+=*****+=++************************************+=*******+++:++-===.:=+*********************************
****************************************+=-++*********++=+**********************************+=**+=++++++++************************************+=+***********+-==+:+-=***********************************
******************************************+===========***************************************==+=********************************************=+**************=--==+*************************************
*******************************************=**************************************************==******************************************+=+****************=+==+**************************************
*******************************************+=************************************************+-++=+*************************************+=+*****************+=+==+**************************************
********************************************=+***********************************************=******===+*****************************+=+********************+++==***************************************
********************************************++**********************************************++**********++-=+********************+==+***********************=**=++**************************************
********************************************+-*********************************************+=*****************++===============++**************************++**+==**************************************
*********************************************=+*******************************************+=**************************************************************+=****==**************************************
**********************************************=*******************************************=***************************************************************=+****==+*************************************
**********************************************+=*********************++******************=+**************************************************************+=****+==+*************************************
***********************************************=+******************++==*****************=+**************************************************************+=*****+=+=*************************************
************************************************=+****************++*=*****************=+***************************************************************=+*****+=+=*************************************
*************************************************=+***************=*++****************=+***************************************************************=+******=*+=*************************************
**************************************************=+**************=*+****************+=***+=-+********************************************************+=*******=**=+************************************
***************************************************=**************+=*****************-+*==+***********************************************************=+******+=**=+************************************
****************************************************=+*************+=***************+=+=*************************************************************=+*******+=**++************************************
*****************************************************=+**************==++*********+==+=+************************************************************++********++**+=************************************
******************************************************=+****************+++++++=++***+=************************************************************+=*********++**+-************************************
*******************************************************=+****************************-+***********************************************************+=**********-***+-+***********************************
********************************************************=+**************************++************************************************************=**********=+****-+***********************************
*********************************************************+=*************************=************************************************************=**********+=****++-***********************************
**********************************************************++***********************=+***********************************************************=+**********++**+=**=+**********************************
***********************************************************+=*********************+=**++===+++*************************************************=+***********=*+=+***++**********************************
*************************************************************=**************+=====-===+*******++++++===========*******************************=+***********===******+=**********************************
**************************************************************=+*********+=+*****+=*************+++======+++*=+******************************=+*******++=+***********=+*********************************
***************************************************************++******==********=+*****++===++++**********=+*******************************=+*****==+****************=+********************************
.......................................................::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::::::::..............................................................
......................................................::::::::::::::::::::::::::::::::::::::::::::---====================---::::::::::::::::............................................................
....................................................::::::::::::::::::::::::::::::::::::::::--========+++++++++++++==============--::::::::::::.........................................................
...................................................::::::::::::::::::::::::::::::::::.:-=====+++++++++++++++++++++++++++++++==+======---:::::::::.......................................................
..................................................::::::::::::::::::::::::::::::::::-====++++++++***********************+++++++++++=======--::::::::....................................................
................................................::::::::::::::::::::::::::::::.:-=====+++++++***********************************++++++++======-:::::::..................................................
...............................................::::::::::::::::::::::::::::::-=====++++++*******************************************++++++++=====-:::::::...............................................
..............................................:::::::::::::::::::::::::::::-=====++++++++**********************************************++++++++=====-::::::.............................................
.............................................::::::::::::::::::::::::::::======++++++**************#*****************#**#**#***************+++++++====-::::::...........................................
............................................::::::::::::::::::::::::::-=====++++++**********#####***#*****#******#**##***#**#******************+++++====--::::::........................................
.........................................:..:::::::::::::::::::::::::-=====+++++++******#****##*****#####***************#**#**********************++++=====::::::::.....................................
.........................................::::::::::::::::::::::::::-=====+++++********#**#****#*****+*****#**#**************************************+++++===-::::::::...................................
.......................................:::::::::::::::::::::::::::-=====+++++++******+*#*****+*******************************************************+++++====-::::::::.................................
......................................::::::::::::::::::::::::::---===+++++++++++*#***+*#**********************************************#***************+++++===--:::::::::..............................
.....................................::::::::::::::::::::::::::---===+++++++++***++#***+**********************###**********************+*##**************++++===---:::::::::............................
....................................::::::::::::::::::::::::::----===+++++++++=*#*********************#***#***#**##**#***#********************************++++====--:::::::::::.........................
...................................::::::::::::::::::::::::::---====+++=+**#*+*==++************#******#***#***#**#***#**##**********************************++++==---::::::::::::.......................
.................................:::::::::::::::::::::::::::-----=======+#*=+#*+++++++++++*****#******##*****++*******###****##***************++*************++++====--:::::::::::::....................
................................:::::::::::::::::::::::::::-------=====+=+#***++++++++++++++**+*###***+***************+*******+**#***##***********************+++++==---::::::::::::::..................
...............................::::::::::::::::::::::::::::------===+*+=+=--=+++++++++++++++++*+=++********************************##***************************++++==---::::::::::::::::...............
..............................:::::::::::::::::::::::::::--------==+*****+==+==+++++*+++==++++++++++++++*****************************+****#**********************++++===--:::::::::::::::::.............
............................::::::::::::::::::::::::::::::--------=--=++*+=====+++****++=++++++++++++++++********************************#************************++++===--:::::::::::::::::::..........
...........................::::::::::::::::::::::::::::::::--------==-:==========-***++#*++=++++++++++++**+++***************************#*************************++++===---::::::::::::::::::::........
..........................:::::::::::::::::::::::::::::::-::-------------========+=-*#*+++====+++++++++++++++++++++********************++***************+**********+++++==--:::::::::::::::::::::::.....
........................:::::::::::::::::::::::::::::::::::---------------==========-=============++++++++++++++++++++***********************#**********************++++==---::::::::::::::::::::::::...
.......................::::::::::::::::::::::::::::::::::::-----------------=**+==**==================+++++++++++++++++*********************************************++++===---:::::::::::::::::::::::::.
......................::::::::::::::::::::::::::::::::::::----=-------------=-:=##+==========-===========++++++++++++++***+*****************+***********************+++++===---:::::::::::::::::::::::::
.....................:::::::::::::::::::::::::::::::::::::---=***+=---------------=============**==========++++++++++++++*+*****************************************++++====---:::::::::::::::::::::::::
...................:::::::::::::::::::::::::::::::::::::::--=++**+=------------------===+======:============++==++++++++++++*********+*****************************++++++===---:::::::::::::::::::::::::
..................::::::::::::::::::::::::::::::::::::::::::=***++-------------------==**++=+=-===================++++++++++++++****+*+*********#***#********+******++++====---:::::::::::::::::::::::::
.................:::::::::::::::::::::::::::::::::::::::::--:--:-=--------------------=***+**=-----================+++=+++++++++++++++++********+*******************++++====----::::::::::::::::::::::::
................::::::::::::::::::::::::::::::::::::::::::-+**+=---------------:---------+**=----------===============++++++++++++++++++++**+*****************++**+++++++===----::::::::::::::::::::::::
..............::::::::::::::::::::::::::::::::::::::::::::::::-++------=*+***=------=****=--=--------------===========++++++++++++++++++++++++************++*******#*+++====----::::::::::::::::::::::::
.............:::::::::::::::::::::::::::::::::::::::::::::=*+++*=-----:-**+=*=------++--=*=----------------=============+++++===+++++++++++++++**++*******++++++++++++++====-----:::::::::::::::::::::::
...........:::::::::::::::::::::::::::::::::::::::::::::::::::--::::::--::-------:--+***+*=----------------==-=====================+++++++++++++*+**=+**+++++++++++++++=====----::::::::::::::::::::::::
..........:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--==:-::-----:--=------------------=========================++++++++++++++++*+*++++++++******+=====----::::::::::::::::::::::::
........::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-****+---:::-+***+=---:::::--------------===------==============+==+++++++++++++++++++++++***+**+====----:::::::::::::::::::::::::
....:.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-+**=-:::-:::::=*=--:::::::::------------------------===============+==++=+++++++=+=+++=+=-++======-----::::::::::::::::::::::::
...:-:::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::-+**+*+--::::::::::::::--------------------------==================++==========++=======------::::::::::::::::::::::::
..::-:::-::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::++*-:::::::::::::--:::::::::::::::-----:::::-::---------------=============+=======================-------:::::::::::::::::::::::
:-:-:::::::-:....:::::::::::::::::::::::::::::::::::::::::+=-::-:::::::+=++==-:::::::-=+*-::::::::::::::::::-::::::::::----------------=======+=++*+===================---------::::::::::::::::::::::::
:::::::::::::-:.....::::::::::::::::::::::::::::::::::::::=+====-::::::---:::::::::-+*+++-:::::::::::::::::::::::::::---------------------=======**+***+=================------:::::::::::::::::::::::::
.:-:::::==-::::-::....::::::::::::::::::::::::::::::::::::-=-:::::::::::::::::::::::::-----::::::::::::::::::::::::::---------------------=======**+=+*+==================-----:::::::::::::::::::::::::
...:-::::::::::-::-:.....::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::-=-:::::::::::::::::::::::::::----:-::-------------=====-=+*++=======+***=-==---------:::::::::::::::::::::::::
......:-::::::::::::-::....::::::::::::::::::::::::::::::::-=-==+-::::::::::::::::::::=++=-:::::::::::::::::::::::::::::::::::::::-::---------=**+===========+*=-=*+-----------:::::::::::::::::::::::::
........::::::::==:::::-:....:::::::::::::::::::::::::::::::+==-+-::::::::::::::::::::-:=+--=::::::::::::::::::::::::::::::::::::::::::------=*+=***+========-+==**=-----------:::::::::::::::::::::::::
...........:-:::::::::::::-:....:::::::::::::::::::::::::::...::::::::::::::::--:::::::--++=::::::::::::::::::::::::::::::::::::::::::::------=-+++*===---==*=--------------::::::::::::::::::::::::::::
.............::::::::--:::::-:....:::::::::::::::::::::::::::::::==::::::::::-:==:::::::-::::===::::::::::::::::::::::::::::::::::::::::::-:------+=--=--==--+**+=----------::::::::::::::::::::::::::::
...............::-::::::::::::-::....::::::::::::::::::::::::-=-=:=-:::::::+-===+-::::::::-=::-+=:::::::::::::::::::::::::::::::::::::::--:::-----------==++=++-=+=-------::::::::::::::::::::::::::::::
..................:-:::::-+-:::::-:....:::::::::::::::::::::::====-:::::::::+=-::::::::::::+=-=+=:::::::::::::::::::::::::::::::::::::-::--:---:----------:=***====------:::::::::::::::::::::::::::::::
....................::-::::::-::-::-::....::::::::::::::::::::::.::::::::::::::::=+-::::::::-=-::::::::::::::::::::::::::::::::::::::=+*+------:-------=+=-=-:===-------::::::::::::::::::::::::::::::::
.......................::-::-:::::::::-:....::::::::::::::::::::::::::::::::::-=+==+=::::::::::::::::::::::::::::::::::::::::::::--::=*+++=-----------==+*+--=-==-----::::::::::::::::::::::::::::::::::
..........................:-:-:--::::::::-:....:::::::::::::::::::::::::::::::.:::==+=:::::::::::::::::::-+++-::::::::::::::::=+*++--::==++------------+****=-----------::::::::::::::::::::::::::::::::
............................:-:::--::::-:::-:.....:::::::::::::::::::::::::::::::-=-:::-=::::::::::::::::-=-=-::=+:==::=+--+-::-=+++:--:-----------=+=---:-=-------=++=--::::::::::::::::::::::::::::::.
...............................:-:-:-::::::::-::....::::::::::::::::::::::::::::::::::==-:::::::::::::::-=-==:::=+++=:::=+++=:::--=+=-::::-:--::--*+=+*=----------=*=-++=-::::::::::::::::::::::::::::..
.................................:-:::--::::-:::-:.....::::::::::::::::::-=::.::::::-+=:::-=::::::::::::::-=-::-+=-+=:::+=-=+-:::-::::::::::--:-:-++=:=*+--------:----::--:::::::::::::::::::::::::::...
...................................::-:::-:::::-::-::....:::::::::::::-:=--=::::::::::::::==+=-::::::::::::::::::--=-::::----:::::::::::::::-++*=::=*+---------------::::::::::::::::::::::::::::::.....
......................................:::::--::::::::-:.....:::::::::::---:::::::::::::::-==:::::::::::::::::::::::::::::::::::::::::::::::-++-=*=-::---------=-----==::::::::::::::::::::::::::::......
........................................::-:-:-:::::::::::.....:::::::::::::::-=:::::::::::::::::::-=::::::::::::::::::::::::::::::::-=+++-:-+=-=*+-----:---=*+*=:::-=:::::::::::::::::::::::::::.......
...........................................:-:-+--::::-:::::.....:::::::::---=-:::::::::::::-==::::==-:=-::::::::::::::::::::::::::::---=++-:-=+=---:-------+==+++=:::::::::::::::::::::::::::::........
.............................................::::-:-::::::::-::....::::::::-=-::::--::::::::::::::-=-==-::::::::::=-:::====::::::::::::--=+=:::::---:--:-+=-::-===-:::::::::::::::::::::::::::..........
................................................:-:::--::::-:::-:.....:::::::-::::::==:::::::::::::::-=:::::::::::==:::::-==::::::::::::=-:::::::::::-==--+=-::--::::::::::::::::::::::::::::...........
..................................................::-::--::::::::-::....::::::::-:-==:::::::::::::::::::::::::::--==::::--==::::::::::::::::::::::::::=++++++-::::::::::::::::::::::::::::::............
.....................................................:-:::--::::-:::-:.....::::.:---:::::--::::::::::::::::::::::--==-::===-::::::::::::::::::::::=+=-:-+=::--::::::::::::::::::::::::::::..............
*******************************====++====-:::..:--====+++======+++++++++++++++*++*+===--===++++++++++++++++++++++++++++========-=====+=---==------===++++++++++++++++++++*++++++++++++*#################
******************************+====++====-:::..:-====++++=======++++++++++++++++++*++=-===++++++++++++++++++++++++++++++=========-===+=---==------===+++++++++++++++++++++**++++++++++*#################
******************************+====++===--:::.::-====+++++========++++++++++++++++**+=-===++++++++++++++++++++++++++++++========--===+=---==------==++++++++++++++++++++++++++++++++++*****#**********#*
*****************************+==========-::::.:--===++++++==========++++++++++++++**+=====+++++++++++++++++++++++++++++========---====----==------==+++++++++++++++++++++++++++++++++++*****************
****************************+=====+=====-::::.:-===+++++++++========++++++++++++++*+++==++++++++++++++++++++++++++++++++======---=-==----===--::--==+++++++++++++++++++++++++++++++++++************+++++
****************************+===+++====-::::.:--===++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++++++=======--==----===-:::-===++++++++++++++++**++*****++++++++++********+++++++++
***************************+===++======-::::::--===+++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++++++======--==---====--:---==++++++++++++++++*****++***++++++++++++++++++++++++++
**************************+====+======-::::.::-===+++++++++++++++====++++++++++++++++++++++++++++++++++++++++++++++++++++========--=-:--====------==+++++++++++++++****++++++*++++++++++++++++++++++++++
**************************+===========-::::::--==+++++++++++++++++====+++++++++++++++++++++++++++++++++++++++++++++++++++===========-:--===-------==+++++++++++++++************+++++++++++++++++++++++++
*************************+===========--::::::-===++++++++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++==========---====--------==+++++++++++++************++++++++++++++++++++++++++
************************+============-:::::.:-==+++++++++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++==========---===---------==++++++++++++**********+++++++++++++++++++++++++++++
+***********************+===========-:::::..:===++++++++++++++++++========+++++++++++++++++++++++++++++++++++++++++===+==================-------======+++++++++*********++++++++++++++++++++++++++++++++
***********************+============-::::..:-===++++++++++++++++++++=======++++++++++++++++++++++++++++++++++=+++=====+=================-::--=========+++++++++******+++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++==--=+=====-::::..:-====+++++++++++++++++++++======+++++++++++++++++++++++++++=+++++++++++++++==+==============--:::--===========+++++++*+++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++==-::-=====-::....:-====+++++++++++++++++++++++=======++++++++++++++****+++++++++++++++=++++++=+++==========------::.::--==--==++===+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++=---=======-:...:-=====++++++++++++++++++++++++++++====+++++++++*****************++++++++++++++================----:...:--============+++++++++++++++++++++++++++++++++++++++++++
**********************+--========-::..:-=====++++++++++++++++++++++++++++++++===+++**********************++++++++++++++==================--:..::-----=====++++++++++++++++++++++++++++++++++=====+++++++
******+***++*********+=--=======-::..:-===++++++++++++++++++++++++++++++++++++++***************************++====++++++===++==============--:...::----==++++++++++=++++++++++++++++++++++++=====++++++++
+++++++++++++*++++++++=-=======-::..:-==+++++++++++++++++++++++++++++++++++++*********************************+++====+====+++++++==========--::..:-==+++++++++++++++++++++++++++++++++++++=====+++++++++
+++++++++++++++++++++++++=====--:..:-==+++++++++++++++++++++++++++++++++++++**************************************+++++++++++=++++==========--:--=+++++++=++=+++++===+=+++++++++++++++++======++++++++++
+++++++++++++++++++++++++**++==-:..-===+++++++++++++++++++++++++++++++++++***********************************************+++++=+==============++=+++++======+========+++++++++++++++++=======+++++++++++
+++++++++++++++===++=---======+++=--===+++++++++++++++++++++++++++++++++******+=++******************************************++=============++==++++=+++======================++++++++=======++++++++++++
+++++++++++++++++++===---------==+========+++++++++++++++++++++++++++++*****+-...=**************************+****************+===========++==++++++++++====================================+++++++++++++
++++++++++++++++++++++++======-::-==++++====++++++++++++++++++++++++++******+:..:+***********************+=:.:=***************+=======+=====++++++++=====================================+++++++++++++++
++++++++++++++++++++++++++++++===----==++==+===++++++++++++++++++++++********+==*************************+-....+**************+=============++++++======================================++++++++++++++++
====++++++++++++++++++++++++++++++++========++++=======+++++++=+==++************************=**************+--+****************+===========+=++++=======================================++++++++++++++++
=====++++++++++++++++++++++++++++++++++++============+*****+++====+************************+=***********************************+============+++======================================++++++++++++++++++
========++===+++++++++++++++++++++++++++++++++===++***********+===+*********************++++==+*********************************+=========++++++======================================++++++++++++++++++
===============++++++++++=+===++++++++++++++++++***************+==**************************************************************+=======+++++++++====================================+++++++++++++++++++
===================++++==++===++++++++++++++++*******************+***************************************************************======++++++=======================================++++++++++++++++++++
====================+=+==+++====+++++++++++++***********************************************************************************++====++++++========================================++++++++++++++++++++
===========================++++++++========+***********************************************************************************++====+===+===+====================================++++++++++++++++++++++
=============================++++++==+++==+************************++*******************************************************+++++====+==+++=======================================++++++++++++++++++++++
=================================++==++===+************************++++++++++*++************************************++++++++++++====++===+++=============================-========++++++++++++++++++++++
=====================================++===+*************************++++++++++++********************+*********++++++++++++++++=========+=============================-=---========++++++++++++++++++++++
=================================+=++++===+++************************+++++++++++++++++++*++++*******+*++++++++++++++++++++++=====================================---------=======+++++++++++++++++++++++
===========================================+++++**********************+++++++++++++++++++++++++++++++++++++++++++++++++++===---==================================--------======+++++++++++++++++++++++++
=============================================+++++++++*+**************++==++++++++++++++++++++++++++++++++++++++++++++====--:-=================================---------======++++++++++++++++++++++++++
===============================================++++++++++*************++++*******************+++++++++++++++++++++++====-::--=================================---------=======++++++++++++++++++++++++++
===--========================================--====++++++++++***+********************************++++++++++++++++===--:..:--================================-----------=====+++++++++++++++*************
=====--=======================================--:--===+++++++++++**************************************+++++++==--:....:---================================-----------=====++++++++*********************
+=====--=-======================================-::..:-=====+++++***********************************************++==------================================-----------======+++++*********#***#**#*#***#*
++++====---======================================---::..::--=++*********************************************************+++==============================------------=====+++*******************##***#**
***+++====--=======================================---:::...=****************************************************************++========================-----------:-===+++**************##******##******
*******++==---=-====================================----:-=*********************************************************************++=====================-------------==+*************************##******
***********+=----==================================-----=**************************************************************************++================--------------=++******************#*******##******
*************+===-===============================-=---=+******************************************************++**********************++============-----------:--=+*****************************#******
****************==================================---=*********************************************************++************************+======------------::::-=**********************#*********#*****
*****************+==---===========================--+***********************************************************+**************************+==-------------:::--=***********************#***************
******************+=---====-==================-==-=+***************************************************************************************+++=-----------:-:--=+*********************#********#********
********************+=------================----=+***************************************************************+++************************+++=---------::::-=********************#******##************
*********************+=-------============------+*****************************************************************+++*************+++++++++++++=-::::--:::::-=***************#*******#******************
***********************=-----------====-------=+******************************************************************+++*************++++++++++++===:::::::::::=+***************#*********#**********#*****
************************+=-------------------=+***************************************************************+**++++++**********++++++++++++===-::::::::::-+*****************#***#**#******************
***************************+=---------------=+**************************************************************++++++++++++++***++++++++++++======-:.:.::::::-++****************#********#*****************
*****************************=-------------=+++***************************************************************+++++++==+++++++++++++++++=====--:....::::::=++*******************************************
******************************+=----::-::-=++******************************************************************++++++=-=+++++++++++++======---.........::-+*********************************************
********************************+=-:::::-=++++***************************************************************++++++++=-:=++++++========----::...........:=*******************************#**************
***********************************=-:::-++++***************************************************************+++++++++=-..-===========---::.............:=+**********************************************
***************#*********************+===++++*************************************************************+++++++++++=-...:-==-=----::................:-+***********************************************
****************************************+++**************************************************************+++++++++++==-......::::....................:=++***********************************************
**************************************************************************+******************************++++++++++===:..............................-**************************************************
*************************************************************************+++*************************+**++*+++++++===-.............................:-+**************************************************
***********************************************************************+++++************************++++++++++++++===-...........................:=+***********************#*****##*********************