-........--+++++++++--++++++++++--------++OOOOOOOO+++-------++++++OOOOO#######OOOOOO#########OOOOOO######OOOO+++++-------++++OOOOOOOO+++--------++++OOOOOOOOOOOOOO+++++----------++++++++OOOOOOOOOOOOO++++OOOOOOOOOOOOOOOOOOO++++-------+++++++++++-----++
........--+++OOOO+++++++++++++++---...---++OOOOOOOO+++----------++++OOO##########OO##############OO####OOOOO++++-------++++OOOOOOO++++---------++++OOOO++++++++++++++++++++++++++---+++++OOOOOOOOOOOOOOOOOOOOOOO####OOOOOOO++++-------------+++---------++
.......--+++OOOOO+++++++++++++++--......--++OOOOOOOO+++------------+++OOO######OOOOOOO#########OOOOOOOOOOO+++++--------++++OOO+++++----------++++OOOO++++-------+++++OOOOOOOO++++-----++++OOOOOO++++++++OOOOOOOOOOOOOOOOO++++---------------------------++
....---+++OOOOOO++++--+++++++++--..     ..--++OOOOOOO+++----......---+++OOOOOOOOO++++OOOOOOOOOOOO+++++++++++++----------++++++++------------+++OOOOO+++---.....---++++OOOOOOOOO++-------++++++++++---+++++++++++OOOOOOOO+++----...---------------------+++
.---++++OOOOOOO+++------+++++++--..      ..--++OOOOOOOO+++----......---+++++++++++---+++++OOO+++++----+++++++++--------------------------++++OOOOOOOO++--........----+++OOOOOOO+++--------+++++------------+--+++++++++++----...-----++------------+++++OO
--+++OOOOOOOOO++----.-----+++++--..      ..---++OOOOOOO+++++---........-----+-------------+++----------++++++++++---------------------++++OOOO####OO+++--..      ....---+++OOO+++---------++++----.............----++++----....---++++OO++++++++++++OOOOOO
-++OOOO####OOO+--.......--------..        ...---++++++++++++---...    ....-------..........-----...---+++OOOOOO++----.....----------+++OOOOO#####OOO++--..           ...---++++----------++++++---........     ....-----.......---+OOOOOOOOOOOOOOOOOOO####
++OOO######OO++--... .....-----...         ....------++++++---...       ...-------.................--+++OOOOOOO++---......---------++++OOOO######OO++--...              ....------.-----++++++++---....          .........   ...-++OO########OOOOOO#######
+++OOO######OO+--...  ......---....      ...........-----------...      ...---------...       ...---++OOO##OOO++---.......----++++++++++OOO#####OOO+--....                .........----+++++++++++---...          ......... ....--++OO######OOOOOOOOO####O
--+++OO#####OO++--.........-----.......................---------.........--++++++++--...      ..---++OO####OOO++--...  ...--++++++++++++++OOOO#OOO++---..........................-----++++++++++++----..........................---++OOOOOOOOO+++++OOOOOOO
.---++OOO####OO++----...-----------------------........------------------+++OOOOOO++--..      ..--++OO#####OO++--..     ..--+++++++------++OOOOOOOO++------------------.......------++++++++++++++---------------------------.....---+++++++++-----++++OO+
...--++OO#####OO++--------++++++++++++++++++++----------++++++++++++++++++OOOOOOOO++--..      ..--++O######OO++--..      ..--++++---------++OOOOOOOO++++++++++++++++++---------+++++++++++++-----------+++++++++++++++++++++---.....----++----------++++++
 ..---+OOO###OOO+++-----++++OOOOOOOOOOOOOOOO++++++--++++++OOOOOOOOOOOOOOOOOOOOOOO++---.        ..--+OO######OO++--.       ..--------.....--+++OOOOOOOO+++++++++++++++++++++++++OOOOOOO++++--.......---+++OOOOOOOOOOOOOOOOOO+++--......---------------++++O
  ..--++OOOOOOO++-------+++OOOOOO########OOOOO+++++++++OOOOOOOOOOOOOOOOOOOOOOOO+++---..        ..--++OO######OO++-..       ...-----........--+++OOOOOO++++++++++++++++OOOOOOOOO####OOO++--...    ..--++OOOOOOOOOOOOO#######OO+---......--------------+++OO
  ..--++OOOOOO++---------+++OOO###########OOO++++++++OOOOOOOOOOOOOOOOOOOOOO+++++---...          ..--+OO######OO++--.       ....------.......---++++++++++--------+++++OOOO#########OO++--..      ..--++OOOOOOOOOOOOO#######OO+--.......-------------+++OOO
  ..--++OOOOO+++----....---++OOO####@@@###OO++++++++++OOO+++++++OOOOOOOO++++-------....        ...--+OOO####OOO++--..      ...---------......---+++++++---......---+++OOO########OOO++--...     ..--++OOOOOOO+++++OOOO####OO++--......--------------+++OOO
 ..--+++OOOOO+++----......---+++OO#######OO+++----+++++++++---++++++O++++------------...      ...--++OOO###OOO+++-...    ...--+++++++++---------++++++---..    ...--+++OO######OOO++---.........--++OOOOOOO++++--+++++OOOO++--.......---++++++-----+++++++
 ..--++OOOOOOO+++----.......---++OO######OO++------+++++++------+++++++----...----------.......---++OOOO#OOOO++---..   ...---++OOOOOOO+++------++++++++--..     ..--++OOO####OO+++---.......----++OOOOOOOO++----------++++---... ....--+++++++------++++++
..--++OOOO##OOOO++++--........--++OO####OO++-------++++++--------++++++---------+++++++---------+++OOOOOOOO++---...    ...--++OOO#####OOO+++++++OOOOO+++--.......--+++OOO#OOOO++---.......---+++OOO####OOO++---------------....   ..---+++++++------++++++
---++OOOO###OOOO++++--....  ...---++OOOOO++---------++++----.----+++++++++++++++OOOOOO+++------+++OOOOOOOO++--..        ..--++OO#########OOOOOOOO###OOOO+++------++++OOOOOOO++--.........--++OOOO#######OOO+++--------------.......---+++++++------+++++++
+++OOOOOOOOOOO+++++---..      ..---++++++-----------++----.....---+++OO+++++OOOOO##OOOO++------+++OOOOOOO++-..          ..--++OO###@@@@################OOOO++++++++OOOOOO+++--..     ...-++OOO##########OOOO+++++++++++++------------+++++++-----+++++++++
OOOOOOOOOOO+++++-----...      ...-----------.-----++++----.....---+++OOOOOOOOO#####OOO++--------++OOOOOO++--..          ..---++OO#######################OOOOOOOOOOOOOO++++---...     ..--+OOO##OOOOOOOOOOOOOO++++++++++++++------++++++++-------+++++OOO++
OOOOOOO++++++--------...    ....----------------+++++++---......---+++OOOOOO######OOO++--.....--+++OOOOO++--....        ..---++OOOO######OOOOOO##OOOOOOOOOOOOOOOOOOO+++----..........---++OOOOOOOOO++OOOOOOOO++++++++++++++++++++++++++---------+++++OOOOO
OOO++++++------------.........---++++---------+++OOOOO+++---.....---+++++OOOOO#OOOO++--..    ..--+++OOOOO+++----..........---+++OOOOOOOO+++++++++++++++++OOOOOOOOO+++----......-------+++OOOO+++++----+++++++++++++++++++++++++OOOO++++---....---++++++OOO
O+++------------+++-----....---+++++++++----+++OOO##OOOO++---......-----+++OOOOOOO++--..      ..--++OOOOOOO+++++-----....---++++OOO+++++----------------++++OOOOO+++---....-----++++++++OO+++++-------------------+++++++---+++++OO++++--.......-----++++O
+---......----+++++++---------++++++++++++++++OOO#####OOO+++-----...------++++OOO+++--..       .---++OOOOOOOOOOOO+++------+++OOOOOO+++---------------------+++++++---.....---++++++++OOOOO++++----.....-----------------------+++++++++--............---++
-...   ....---+++++++---------++++OOOO+++++++++OOOOO###OOOOO++++------..----+++++++++-..       ..---++OO########OOO++++++++OOOOOOO+++--.................-----------......---+++OOOOOOOOOOO++++------.---------------------..-----+++++++--....       ...--
..      ...---+++++----.....---+++OOOOO++++++++++++OOOOOOOOOOOOO+++----..---+++++++++--..       ...-++OO#########OOOO+++++OOO##OOO++--.................----------.......--+++OOOOOO+++++O+++++++--------------------------....-----++++++---...        ..-
..    ...----++++----........--+++OOOOOO+++--------++++OOOOO###OOOO++--------++++++++--..       ...--++OO########OO+++++++OOOOOOO+++--....--------...-----------......---++OOOOOO+++++++++++++++++---+++++++-------++++----......---+++++++---..       ...
-......---++++++----...    ..---++OOOOOOO++----.....---++OOOO#####OO+++------++++++++--...    ....--+++OOOO#OOOOO+++-----+++OOOO+++---------------------+++++----....--++OOOOOOO+++----++++++++++++++++++++++---+++++++++---.......--++++++++---........--
------++++OOO++++---...    ..---++OOOOOOO+++---........--++OOO#####OO++-------+++++++--.........---+++OOOOOOO++++---....---+++++++--------++++++-------++++++++------++OOO###OO+++--------+++++++++++++++++++---++++++++++--..   ...--++++++++++--------++
+++++++OOOOOOOOO+++--........--++OO#####OOO++---........--+++OO###OOO++---------++++---.......---++++OOOOO++++---....  ...---------------++++++++------++++++++++--+++OO#####OOO++--------------------+++++-------+++++++--..      ..--+++++++++++++++++++
+++++++OOOOOOOOOO+++--......--++OO#######OO+++--........----+++OOO+++--.....----++++---......--++++OOOOOOO++---...       ...-------------++++++++----------++++++++++OOO#####OOO++----------------------------------+++++---...  ....---++++++++++++++++++
++++++++OOOOOOOOO+++--.....---++OO#######OO+++---.......------++++---........---+++++--......--+++OOOOOOOO++--...        ............---++OOOOO+++----.----------++++OOO####OOO+++++++++++++++--------------..-------++++------...------++++++++++++++++++
------++++OOOOOOO++---......--++OO#######OO++-----.----------------.........---++++++---.....---++OOOO#OOO++--...      ..............--+++OOOOOOO++---..........--+++OOOOOOOOO++++++++++++++++++-----.......----------++++++++++++++++++------------------
--------++++OOO++++--..   ..--++OO######OO++------------------.............---++++++++--......---++OOO###OO++--..........---....   ...--++OOOO#OOO++---....   ...--+++OOOOO+++++++++OOOOOOOOO++++---.......------------++++++OOOOOO+++++------------------
+--------+++++++++--..     ..--++OO#####OO++--------++++++---...........----++++++++++--.......---++OO####OO++---..-----------..    ..--+++OO####OOO++--..      ..--+++++++++----+++OOOOOOOOO++++---......---+++++++----+++OOO####OOO+++-----..---------..
++++----++++++++++--..     ..--++OO#####OO++------++++++++---.....-------++++++++++++--...   ...--++OO#####OO++-------++++++--..     ..--+++OO####OOO++--..     ..--+++++++------+++OOOOOOO+++++---.......--++++++++-----++OOO####OOO++----...-----------.
OOO+++++++OOOOO+++--..     ..--++OOO####OOO++----++++++++---.....---++++++++++++++---...     ..--+++O#######O+++----+++++++++--.      ...--++OOO##OOO++--..     ..--+++++++-------++++OO++++-----.........--+++++++-------++OOOOOOOO++----------++++++++--
OOOOOOOOOOOOOOO+++--...   ...---++OOOOOOOO+++-----++++++---.......--+++++++++++---....       ..--+++OOO####OOO+++++++++++++++--.        ...--++OOOOO+++--........-++OOOO+++---...-----+-----.......    ....--++++++---------+++OOOO++++------++++OOOOO++++
OOOOOOOOOOOOOO+++---........----+++++++++++--------++++---.... ....--++++++++---...        ...----++++OOOOOOOOOOOOOOOOOOOO+++--..         ...--+++++++---......--++OOOOOO++---.......................  ....---+++++++---------+++++++++++++++OOOOOOOOOO+++
OO++OOOOO##OOO++---......-----+------++------------++++---...    ...---+++++---...       ...----------+++++OOOOOOOOO##OOOO++---..          ...---++++---.......--++OOOOOO+++--.............................---++++++++-----------+++++++++OOOOOO#OOOOO+++-
++++++OOO##OOO++----.-----+++++-------------------++++++---..     ...----++-----.........---++++-----------+++OOOOO####OOO++---...............----------.......--++OOOOOO+++---........   ....--------.....--+++OOOOOO++---....----+++++OOOOO###OOOO+++---
----+++OO###OOO++-------+++++++----....----------++++++++--...     ..----+++++----------+++++++++---.......--+++OOO#####OO++---.....--------------+++----......---++++++++++++-----..........---++++---------++OO####OO++---......--+++++OOOOOOOOO+++-----
-----++OO####OOO+++--++++++++++----...----+++++++++OOOO+++--...  ...---+++++++++++++++++OOOOOOO+++--...   ...--+++OOO##OOO++----------+++++--++++++++++---.......----++++++++++++++---......---+++++++------++OO######OO+---.......-----+++OOOOOO+++------
---+++OO#######OO++++++++OOO++++---------++++++++OOOOOO+++--........--+++++OOO+++++++++OOOOOOOOO+++--... ....---+++OOOOOOO++--------+++OOO+++OOOOOOOOO+++--........-----++++++++++++---......---+++++++++++++OO#######OO+++--.......-----+++OOOOO+++------
+++++OO##@@@@@##OOOOOOOOOOOOO+++---------++++++++++OO++++---........--+++++++++++++++++OOO####OOO++--.......----+++OOOO++++---..---+++OOOOOOO#######OOO++--.... .....----++++++++++++---......----+++++++OOOOO########OOO++++------------++++OOO+++---...-
++++OO###@@@@@###OOOOOOOOOOOOO+++---------+++++++++++++++--....  ...----++++++++++++++++OOO###OOO+++--.....---+++++++++++---.....---++OOO######@@####OOO+--..    ....----++++++++++++----.......---+++OOOOOO#########OOOOOO+++++++++----+++++OOO+++---....
+++OOOO##@@@@@##OOO+++++OOOOOOO+++---------------+++++++---....  ....-----------------++OOOO#OOOO++---....---++++++++++----......---+++OOO####@@@@###OO++--..    ...----+++++----+++++----......---+++OOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++OOOO+++---....
+++++OO########OO+++++++++++O++++-----------------++++++---..........-----------------+++OOOOOOO+++---...----++++++++++------.....----+++OOO###@@###OO++--..     ..--+++++++------++++++-----..----++++OOOOOOO++++++++++++OOOOOOOOOO++++++++OOOO++++--..  
+++++++OO#####OO++-------+++++++-----------------++++++++---........------------------+++OOOOOOO++---.....---++++++++++------------------++OO######OO++--..     ..--++++++++------+++++++++------+++++++++++++----...---++++OOOOOOOO+++++++++OOO++++--..  
------++OOOOOOOO++---------++++---------+++++++++++++O+++++----------++++++++++++++++++OOOOOOOO++---.........--------+++++++++++----...----++OO###OOO++--.       .--++++++++++++++++OOOOOO++++++++++++++++-----........---++++OOO++++------+++++++++--..  
......--++OOOOOO+++--------++++-------+++++++++++++OOOOOOO+++++----++++++++++++++++++++OOOOOO+++---...       ......---+++OOOOOOO++--......---++OOOO+++--..       ..---++++++++++OOOOOOOOOOO++++++++++++++-----.........-----+++++----.....---+++OO+++--...
      ..-+++OOOOO+++------+++++++++++++++++++++++++++OOOOOOOO+++++++++++++++++++++++++++++++++----.....           ..--++OO#####OO++--... ...---+++++---..       ...-----+++++OOOO#######OOO+++++++++++++++------.....-------------...     ..--++OOOO+++---
      ..--++OOOOOO+++++--++++++++++++OOOOO+++++----++++OOOOOOOO++++++---++++++++++++------------.........          ..--+OO######OO++--..   ...---------...    ....---------+++OO########OO++++---++++++++++++-------------------.....     ..--++OOOOOO++++
     ...--++OOOOOO+++++---++++++++OOOOOOOO+++---...---+++OOOOOOO++++-------++++++-------.........--------....     ...--++OOO####OOO++--.......---------........--------..---+++OOO####OOO+++-------++++++++++++++++++++++-------.......   ...--++OOOOOO+++
.....---++++OOOO+++++-------+++++OOOOOOOO+++---.......--+++OOOOO++++-------++++++------.........----++++++----.......----+++OOOOOOOO++---...-----++++----.-------++---......--+++OOOOOOO++++-------+++++++++++++++++++++++------------......----++++++++++
.----+++++++++++++-----...-----+++OOOOOOOO++---..    ...--++++OO+++++---++++++++++++---........---+++OOOOOO+++--------------++++OOOOO++++----++++++++++------+++++++---.......---+++++++++++++----+++++++++++-++++++++++++---------+++------------++++++++
-+++++OOOOOO++++----...........---++OOOOOOO+++--...  ...---+++++++++++++++OOOOOOO+++++----...---+++OOOOOOOOOOO+++++---......---++++OOOO+++++++++OOO+++++----++++++++---........-----++++++++++++++++++++-----------++++++-------+++++++++-----....--------
+OOOOO##OOOOO++---...          ...--++OOOOOOOO++---.....----+++++++++++OOOOOOOOOO++++++------+++OOOOO#######OOOOOO++--.... ....---+++++++++++OOOOOO++++------+++++++--.........-------++++++++++++++++----........------------+++OOOOOOO++---....     ....
O#########OOO++---...            ..--++OOOOOOOOO++++--------------+++++OOOOOOOOO++++++--++++++OOOOO##############OO++--..     ...---++++++++OOOOOO++++--------+++++---........---------++++++++++++++-----...    ....------+++OOOO####OOO+--..            
##########OOOO++---..            ...--++OOOOOOOOOOOO++++-----....----+++OOOOOOO+++------++++OOOOOOOOOOOOOOOOOOO##OOO+--..      ....----+++++OOOOOO+++----------------......-----+++---------------++++----...      ...---+++OOO#######OO++--..            
OOOOOOOOOOOOOO+++---..        .....----++++OOOOO####OOO++---........--+++OOOO++++------++++OOOOOOOOO++++++++++OOOOOO++--.............----+++OOOOOO+++-----------------...-----++++++---------------++++++---...     ...--++OOO#######OO++--...     .......
+++++++++++OOO++++--...    ...------------++++OO######OO++--..     ..--++++O+++++------++++OOOOO++++---....---+++OO++++-----------....----++OOOOOOO++---------+++++----------++++++--------------++++++++++--...     ..--++OO######OO+++--.........-------
-++------+++++++++--........--++++++---------++OOO###OOO++--..     ..--+++OOOOO+++++++++++OO+++++---...   ...--+++++++++++++++++---------+++OOOOOOOO+++++++++++++++++----------+------------+++++++OOOOOOO++--..     ...--++OO####OO++---.......---+++++++
------------+++++---......--+++OOO+++----...--++OOOOOOOO++--.      ..---++OOOOOOOOOOOOOOOOO+++---...        ..---+++++++++++++++++++++++++OOO#######OOOO++OOOOOOOOOO++++----------....----++OOOOOOO#####OOO+++-...   ...--++OOOOOOO++--.........--++++++++
------....----------------+++OOOOOOO++--.....--++OOOOOO+++--.       ..---++OOOO#########OOO++--...           ...---++++++++OOOOOOOOOOOOOOOOO###@@@####OOOOOOO#####OOOO+++++-----.......--++OO############OOOO++--......---+++OOOO++--....  ....---++++++++
++----........----------++++OOO###OO++--......-++OOOOOOO++--..      ...---++OOO#########OOO++-...             ..-----++++++OOOOO#####OOOOOO#####@@@#####OOO#########OOO+++++----.......--+OO##############OOOO+++---..---++++OO+++--...   .....----++-----
++++---........-----++++++++OOOO#OOO++--.....--++OO##OOO++--..      ....---++OOO######OOOO++---..            ...-------++++++OO########OOOOOO#########OOOOOOOOO####OOO+++++++----......--++OO#########OOOOOOOOO+++-------++++++++---.........-------------
OO+++--..    ...--+++++++++++++OOOO+++---...--++OO####OO++--....  ....-----+++OOOOOOOOO++++++----...        ...------------+++OO#######OOO++OOOOOOOOOOO++++++OOOOOOO++++++++++++---.....--+++OOOOOOOO++++++OOO++++-------+++++++++---....-------------....
OO+++--..     ..--+++++++++---+++++++--------++OO#####OO++--........------++++++++++++++++++++++----..     ..---++++--------++OOO####OOO++++++++++++++++----+++++++++----++++++++---......---+++++++------+++++++--------++++++++++------++++++++++---....
O+++--..      ..--+++++++--------++---------++OO######OO+---......---+++++++++++++--------+++++++++---......--++++++++------++OOO##OOO++---------++++----------++++-------++++++++--........---------..-------------..----++++++++++++++++OOOOOOO+++++--..
+++---..      ..---------.......---------++++OO######OO+---.......--+++++++++++-----..----++++OOOO++++------+++OOOOOO++++++++OOOOOOO++---.......------......---------...---++++++++--...    .............--------........---++++++++++++++OOOOOOOOOOO++---
+++---..      ..------....    ....-----++++OOO#####OO++--.........---++++++++----......---++++OOOOOOO++++++++OOO####OOOOOO+OOOOOOO++---.....................-------......--+++OOOO++--..            ....--------..........---++++++++++++++++OOOOOOOOO+++-
+++---..........----...        ...----++++OOOO####OO++--...........----+++-----.......----++++OOOOOOOOOOOOOOOOO########OOOOOOOOO+++--......................--------......--+++OOOO++--...           ...---+++---....  ....---+++++++------+++++++OOOOOO++-
++++---......------...        ...-----+++++OOOOOOOO++---...........-----------......-----++++++++OOOOOOOOOOOOOOOO#######OOOOOO+++--......................---++++++--.....--+++OOOO++---....      ....---++++++--.... ....---+++++++--------------+++OOO+++
++++---------------...      ...----+++++++++++OOO++++-----------..------------....---++++++++--++++OOOOOO+++++++OOOOOOOOOOO++++---.......-----------..---+++OOOOO++---------++++++++-----........-----++++++++--........---+++++++++------......---+++++++
+++++-------++++++--..     ..--++++++++-----+++++++++++---++-----------+++----------+++++++-------++++++++++---++++OOOOO+++++---.......---++++++++-----++OOO###OOO++---------+++++----------------++++++++++---........--+++OOOOOO++++-----......---++++++
++++---------+++++--........---+++++++----..----++++++++++OO+++++++++++++++----------+++++---------+++++-----.-----+++++-----.........---++++++++++++++++OOO###OOO++----------------------++++++++++++-------...    ...--+++OOOOOOOO++++++----------++++++
------.....-----+---........---+++++---........---+++OOOO###OOOOO++++++++++---....---++++----.....--------..................      ....---+++++++++++-+++++OOOOOOO++----------------------++++++++++-----.....        ...--++++OOOOOOOOOOOO++++-----+++++++
-----........-------.........--------...      ...-++OO########OOOO+++++++---.......---+++---.......------...                     ....----++++-----------++++++++++---.....-----++++----++++++++++-----....            ...----+++++++OOOOOOOOOO++++++++++++
----....   .....---..........--------....      ..-++OO########OOOO+++++---.........---++----.......-------...                  ....--------------------------+------......----++++++++++++++----------.....           ...---------++++OOOOO##OOOO+++++++++
-----....   .....---------------------..........--+++OOOOOOOOOOO++++++---...    ...--++++----.....---++++---.....          ....----+++++-----.....-------------------....-----+++++++++++++--------------.....      .....---.....----+++OO######OO++++++++
+++---.........----------------------------------+++++++++++++++++++++---..     ...--++++++--------++++OO++++----..........----+++OOO++++----....------------------------------+++++++++++++----------+-------........-------.......--++OO######OO+++-----
O++++----....----++++++++++++++++++++++++++++++++++++++++-----++++++++++--...  ...--+++++++++----+++OOOOOOOO++++-----------++++OOOOOOOO+++----------++++++++++++++++++-------------++++++++++++++++++++++++++----------++++----.....---++OO#####OO++------
OO++++---------++++++OOOOOOOOOOOOOOOOOOO+++++++++++++++--------+++OOOOOO++---..----++OOOOO+++++++++OO#######OOOO++++----+++++OOO#####OOO+++------++++OOOOO++++++++++++++-------------+++++++++++++++++++++++++++++++++OOOOOO++---....--+++OOOOOO++----.---
++++++---------+++++OOOO##########OOOOOOO++OOOOOOOOO++++------+++OOOOOOOOO+++++++++OOOOOOOO+++++++OO###@@@@####OOO+++++++++OOO########OO++-------+++OOOOOOOOOOO+++++++++-------------++++++++++++++++++++++++++++++OOOO####OOO+---....---+++++++---......-
----------------++++OOO###########OOOO+++++++OOOOOOOOO++++---+++++OOO####OOOOOOOOOOOOOOOOO++++++++OO##@@@@@@@###OO+++++++++OOO#######OO++---------++OOOOOOOOOOO+++++++-------------++++++++++++++++++++++++--+++++OOO#######OO++--.....----------........-
------------------+++OO##########OO+++----++++OOOOOOOOO++++++++++++OOOOO##OOOOOOOOOOOOOOO+++----+++O###@@@@@###OO++-------++OOO######OO++---.....---++OOOOOOOO+++----------------+++++++++------+++++---------++++OOOO######OO++--......------.........---
...----------------++OOO####OOOOO++---...---+++OOOOOOOOO+++++-----++++OOOOOOOOOOOOOOOO++++-------++OO###@@###OO+++--.....--++OOO#####OO++--...  ...--+++OOOOO++++---------------+++++++++----------------------+++++OOOOOOOOO+++---...-------......-------
...---+++----------++OOOOOOOO+++---.......---++OOOOOOOO++++-----.-----+++++OOO+++++++++---.....---++OO#####OO+++--..    ..--++OO#####OO++---..    ...--++++++++++----------------++++++++-------++++---------+++++++++++++++++-----------------------++++-
.--++++++++++----+++OOOOOOO+++---....  ...--++OOOOOOO+++----..........----+++++--------........---++OO####OO++---..      ..--++OO#####OO++--..     ..--++++++++++++++++++----------++++++++++++++++++++++++++++++++++--------------+++++++++-------+++++++
-++OOOOOOOO++++--++++OOOOO+++---...   ...--++OOOOOOO++--...          ....------...............---+++OOOOOOO++----..      ...--++OOOOOOO+++--..      ..---+++++++++++OOOO++++---------++++++++++OOOOOOOOOOO++OOOO+++++-----------++++OOOOOO++++++++++++++++
+OO#####OOO+++-----+++++++++---....  ...--+OOO###OO++--.               ..........         ...---++++++++++++-----....    ....--+++OOO++++---..      ...---+++++++++OOOOOOOO++++-----------++++OOOO######OOOOOOOO+++++---------++++OOOOOOOOOO++++++++++++++
OO######OOO+++------+++++++++---.......--++OOO###OO++--.                .........        ...---++++++---------------..........---++++++----..       ...---++++++++++OOOOOOOOOO+++++---------+++OO########OOOO+++++++++++-----+++OOOOOOOOOOOO++++++++++++++
OOOO##OOOO+++--------+++++++++---......--++OOOOOOOO++--...            ....------....  ....---++++++---......---+++++----......-----++------...      ..----+++++++++++OOO####OOO++++---.....--+++OO#######OO+++++++++++++++++++++OOOOOOOO+++++++++++++----+
OOOOOO++++++---------+++OOOO+++--.......--+++OOOOOOO+++---...       ...---++++++----..----++++++++--...   ...--++++++++-----------+++------....   ...---+++++-------++OO#####OOO+++--.......--++OO#######OO++-------+++++++++++++OOOO+++++++++++++++------
+++++-------------++++OOOOOOO++--.........---++++OOOOO++++---.......---++++OOOOO++++--++++++OO++++--..     ..--++++OO++++++-++++++++++++++---.......---++++++-------++OO#####OO+++--..     ..--++O######OO++---------++++-----+++++++++------+++++++------
+------------++++++++OOOOOO+++---..     ....---+++OOOOOOOO+++---------+++OOOOOOOOOO+++++OOOOOOO+++--..     ..--++++OOOO++++++++OOOOOOO++++++---.....---++++++--------++OOOOOOO++--...      ..--++OO#####OO++---------------------+++----------++++++------
---.......---+++++++++++++++---...       .....---++OOO###OOO+++------++++OOOOOOOOOOOOOOOOO##OOOOO++--.......--++++OOOOOOO+++OOOOOOOOOOO++++++----...-----+------...---+++OOO+++--..         ..---++OOOOO++------------++--------------......---+++++----..