
...................`````````````````````.......``````````````````````````..;;;+++++++*******************+++++*+*+*++++***+*********************************++;;;;;;;;;;;;;..........
..................``````````````````````........````````````````````````...;;;++++++*********************++++*++++++++++************************************++;;;;;;;;;;;;..........
.................```````````````````````.......`````````````````````````...;;;++++++*********************+++++++++++++++++***********************************+;;;;;;;;;;;;..........
.................``````````````````````........````````````````````````.....;;++++++*********************+++++++++++++++++*+++********************************++;;;;;;;;;;..........
.................``````````````````````........````````````````````````.`...;;;+++++********************++++++++++++++++++++++*********************************++++++;;;;;..........
.................``````````````````````........````````````````````````.``...;;+++++*******************++++++++++++++++++++++++**********************************++++;;;;;..........
..................````````````````````.........``````````````````````````.....;+++++******************++++++++++++++++++++++++++++*********************************++++;;;..........
.....................`````````````````.........```````````.`````.``````.......;;;++++****************+++++++++++++++++++++++++++++++++*****************************+++++;;;.........
..................``.``````````````````.......`````````````````````````````....;;++++++*****++++++++++++++++++++++++++++++++++++++++++++***************************+++++;;;.........
.................``````````````````````.......`````````````````````````````.....;;++++++++++++++++++++++++++++;;;;;;;;;+++++++++++++++++++**************************++++;;;.........
.................``.``````````````````........``````````````````````````````....;;+++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++++************************+++++;;;.........
.................`````````````````````........``````````````````````````````....;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;++++++++++++++++++***********************++++++;;;;........
....................``````````````````.......``````````````````````````````.....;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++***********************++++++;;;;........
......................``..`````.`````........``````````````````````````````......;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++**********************++++++;;;;........
....................`````````````````........```````````..`````.`...............;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++********************+++++++;;;;........
....................`````````````````........````````````````````````.`````.....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++******************+++++++++;;;;........
....................`````````````````........````````````````````````.`````....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++*******************++++++++;;;;........
...................`````````````````.........````````````````````````.`````...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++*********************++++++++;;;;;.......
...................`````````````````........``````````````````````````````....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++***************++***++++++++;;;;;.......
...................`````````````````..........................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++***************+++**+++++++;;;;;;;......
.....................`...`.``.`````..........................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++*************+++*++++++++;;;;;;;......
...................````````````````..........................................;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++*************++++++++++++;;;;.;;......
.......``......`..`````````````````..........................................;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++***********+++++++++++++;;..;.......
``````````..````..`````````````````..........................................;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++*********+*++++++++++++;;..........
.```.```````````..`````````````````...........................................;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++******+++++++++++++++;;..........
````````````````.`````````````````............................................;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++***+++++++++++++++++;;..........
````````````````.`````````````````............................................;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++;;;..........
````````````````.````````````````.............................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++;;;..........
``````````````````````````````````.........````...............................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++;;;;.........
``````````````````````````````````........``````````..........`````...........;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++;;;;.........
``````````````````````````````````........`````````...........``````.```......;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++;;..........
`````````````````````````````````........````````.............``````..`.......;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++;;;.........
`````````````````````````````````........``````..................``...........;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++;;;;........
`````````````````````````````````.........`````...............................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++;;;;;;.......
````````````````````..``..................````.....................```.......;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++;;;;;;.......
`````````````````````````````````.........````....................`````....;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++;;;;;........
`````````````````````````````````........```......................``````...;;;++++;;;;;+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;........
`````````````````````````````````....................................```...;;+++++;;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;........
````````````````````````````````......................................`.....;++++++;;;++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;........
````````````````````````````````........................``...........``.....;;++++++;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;........
````````````````````````````````.......................````..................;+++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++;;;........
````````````````````````````````......................`````..................;+++++++;;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++;;;;........
```````````````````````````````......................```````..................;++++++;;;++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++;;;;........
````````````````````````````````......................```.```.................;;+++++;;;;;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;+++++++++;;;;........
````````````````` ``  ` `` `````..................```....````...................+++++;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;+;;;;;;;++++++++;;;........
````````````````` `` `  ````````..................```````````...................;++++;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;.;;+++++++;;;........
```````````````````` ` ``````````................````````````...................;;++;;;;;;;;;;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++;+++++++++;;;;;;;;;...;++++++;;;........
```````````````` ``    ``    `````..............`````````````...................;;;;;;;;;;;;;;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++;+++;;;;;;;;;....+++++++;.........
```````````````````    ``  ```````..............`````````````...................;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;..+++++++;.........
``````````````````````````````````..............````````````....................;;.;;;;;;;;;;;;;++++++++++++;;;+++;;;;;;;;;;;;;;.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..;+++++;;.........
`````````````    `     ``    ```````............````````````...................;;;.;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;.;+++++;..........
```````````````````    `    ````````..........````````````````.................;;..;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;.....;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;.;+++++;..........
``````````````````````````````````.........```````````````````..`.............;;..;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;.....;;;;;;;;;;.;;;;;;;+;;;;;;;;+;;;++++;;..........
``````````````  ``    ````` ```````.....````.....``...........................;;..;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;......;;;;;;;...;;;;;;+++;;;;.;;;;;;+++;;...........
`````````````````` ` `````` ````````.````````````````````````.................;..;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;.....;;;;......;;;;;;+++;;;..;;;;;+++;;...........
````````````````````````````````````..`````````````````````````.````............;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;.............;;;+;++;;;;.;;;;;;+++;...........
`````````````````````````````.`......``````````````````````````.`..`............;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;.............;;;;;;++;;;.;;;;+;;+;............
````````````````````````````````````.```````````````````````````````...........;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;..;;......;..;;;;;;;+;;;.;;;;++;+;............
`````````````` ```````````````````...``........................................;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;......;;;.;;;;;;;;+;;.;;;+++;;.............
`````````````  `` `  ```   `````````````````````..............................;;;;;;;;;;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......;;;;.;;;;;;;;;;;.;;;+++;;.............
``````````````````````````````````..````````````````````````````````.........;;;;;;;;;;;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;;;;;;;;;.;;;++++;..............
``````````````````````````````......````````````````````````````````.........;;;;;;;;;;;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;..............
``````````````````````````````.......````..```....`````````````````.........;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;;++++;...............
````````````  ````` ``    ``````.....```````````.````...`....................;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;;++++;...............
`````````````````````````````........``````````````````````````````..........;;;;;;;+++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;++++;................
```````````````````````````````.....```````````````````````````````..........;;;;;;++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..;;;;;+++++;................
```````````` ``     ``    ``````..`````````````````````````````````..........;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..;;;+++++;.................
```````````` ``     `     ``````...````````````````````````````````...........;;;;;+++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;..;;;+++++;.................
```````````  ``    ``    ``````...`````````````````````````````````...........;;;.;;++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++++;.................
```````````  `     ``    `````....`````````````````````````````````...........;;..;;;;;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;+++++;..............`...
``````````` ``     ``    ````.....`````````````````````````````````...........;;..;;;;;;;;;+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;+++;;..................
``````````` ``     ``    ```......`````````````````````````````````...........;;..;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;++;;...................
``````````````````````````........`````````````````````````````````............;..;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........`...`````..
``````````  ``    ``    ``........````````````````````````````````.............;..;;;;;;;;++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............`````..
``````````  `     ``    ``........````````````````` ``````````````.............;..;;;;;;;;+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........`...`````..
``````````  `     ````````........`````````````     ``` ` ```` ````............;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........`.....``...
`````````   `     `` `````........`````````` ``     ``````````````...........`..;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............`....
`````````   `     ```````........``````````````    ```    ````````..........``..;;;;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................`.`..
`````````         `` ````........``````````  ``    ```   `````````..........```.;;;;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
````````````````````````.........``````````````  `````  ```````` `..........````.;;;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;.......................
````````````````````````...................```````````````````````.........`````.;;;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................`````..
````````   `     `` ````.........``````````````````..`.....................`````..;.;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............................
````````` ``     `` ````........``````````  ``     ``    ````````.................;.;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................````...
````````` ``    ````````........``````````` ``     ``  ` ```    ``........``````....;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................````...
````````````    ````````........```````````````   ``` `  ```  ` ``........````````..;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............``.``...````...
```````````     ````````........`````````` ````   `````` `````` `.........````````..;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............................
````````````   ````````........````````````````   ````   ``` ````.........`````````.;;;+++;++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............................
```````````````````````........``````````` ```    ````  `````````.........`````````..;;;++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............................
```````` `````````````.........````````````````` `````` ```  ````.........`````````..;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............................
````````````   ````````........``````````````````````````````````.........`````````..;;;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............;..................
```````` ````` ````````.......````````     ````` ```````````````.............``````...;;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............;;.................
```````````````````````.......````````     ````  ``     ```` ````.........`.```.``....;;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........;...;;;................
`````````` ```````````........````  `      ``    ```    ``   ` ``........```````````..;;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........;....;;................
``````````` ``````````........```````     ```    ``     ``   ` `.........````````````.;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........;....+;;...............
``````````````````````.......````````     ``     ``     ````````.........````````````.;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........;....++;;..............
``````````````````````.......````  ``   ````     ``     ``     `........`````````````.;;;;;++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........;....++;;;.............
`````````````````````........`````````  ````    ```    `````  ``........``````````````.;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........;....+++;;;;...........
`````````````````````........``````````````````````  ` ```    ``........``````````````..;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........;....+++++;;;..........
`````````````````````.......```    `      `     ```````````````.........````````````````.;;++++++++;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;........;;....+++++++;;.........
```````````````````````....````    `      `     ``     ``  ````.........``````.``.....```..;;;+++++++++;;;;;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;........;;....+++++++++;........
```````````````````````.`..````   ``      `     ``     ``     `.........`````````````````......;;;+++++;;+;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......;;;....++++++++++;.......
``````````````````````.````````  ```     ``     ``     ``     `........`````````````````````.``...;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......;;.....+++++++++++;......
.`````````````````````````````` ```      ``     ``    ```     `........``````````````````````````.;;;.;;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......;;;.....;+++++++++++;.....
....`.........``````...``````````        ``    ```    ```     `........``````````````````````````.;;;.;;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......;;;;.....;++++++++++++;;...
.```````````````````....````````````````````   ```    `````````........`````````````````````````.;;;..;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......;;;;.....;++++++++++++++;;.
..`````````````````````````````````````````````````````````````........````````````````````````.;;;;..;;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......;;;;;.....;+++++++++++++++++
...```.```````````````````````    `     ``````````````.................```````````````````````..;;+;.;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....;;;+;;.....;+++++++++++++++++
.`````````````````````.````````  ``     `      ``    `````````............``.````````````````.;;;;+..;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....;;;++;;.....++++++++++++++++++
.`````````````````````````````````````````     ``     ``     `........```````````............;;;;++..;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....;;;;++;......++++++++++++++++++
.`````````````````````````````` `````````````````````````   ``........````````````````````..;;;;++;..;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;....;;;;;+;;......++++++++++++++++++
.`````````````````````````````  ``      `     ```````````````.........```````````````````..;;;;;++;.;;;;;;;++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;...;;;++++;;......++++++++++++++++++
..````````````````````````````  ``     ``     ``     ````````.........````````````````...;;;;++;++..;;+;;;;+++++++++++++++;;;;;;;;;;;;;;;;;;;;;...;;;++++;;.......++++++++++++++++++
``````````````````````````````  ``     ``     ``     ``     `.........`````````........;;;;++++;++..;;;+;;;++++++++++++++++;;;;;;;;;;;;;;;;;;;;..;;;+++++;;.......++++++++++++++++++
```````````````````````````````````````````   ``     ``     `........```````````.....;;++++++++++;..;;;+;;;++++++++;+++++++++;;;;;;;;;;;;;;;;;;;.;;+++++;;........++++++++++++++++++
``````````````````````````````` `` ````````````````````    ``........``````````...;;;++++++++++++;..;;;++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;+++++;;;.......;++++++++++++++++*+
```````````````````````````` `  ``    ``     ``` ````````````.........``````....;;+++++++++++++++...;;;+++++++++++++++++++++++++;;;;;;;;;;;;;;;;;++++++;;........;+++++++++++++****+
````````````````````````````  ```     ``     ``     ``   ````........````.....;;+++++++++++++++++...;;;+++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++;;.........;+++++++++++****+**
````````````````````````````   `````  ``     ``     ``` `` `.........```....;++++++++;+;;+;+++;;;..;;;;++++++++++++++++++++++++++++;;;;;;;;;;;;;+++++;;;.........;+++++++++++*******
````````````````````````````   ````   ``     ``     ````````...............;++++++++++++++++;;;....;;;;+++++++++++++++++++++++++++++;;;;;;;;;;;++++++;;..........+++++++++++********
`````````````````.`...`.````  `````  ```     ``    `````````............;;.+++++++;;;;;;;;;;;..`...;;;;+++++++++++++++++++++++++++++;;;;;;;;;;++++++;;;..........++++++++++*********
`````````````````.......````` ````   ```    ```    `````````..........;;+;.+++++++++;;;;;;;;;..`;..;;;;++++++++++++++++++++++++++++++;;;;;;;;++++++;;;...........++++++++++*********
````````````````........```````````` ```    ```    `````````........;;++++++++++++++++++;;+;;;;.;;.;;;;++++++++++++++++++++++++++++++;;;;;;;++++++;;;............;+++++++++*********
````````````````........`````````````````````````` ````````.......;;++++++++;.;++++++**+++*+;++*+;;;;;;;+++++++++++++++++++++++++++++;;;;;;++++++;;;.............;++++++++**********
````````````````........```   ``  `````````````````````````.....;;+++++++++;;+++;;++++;;+++;;.;+;.;;;;;;+++++++++++++++++++++++++++++;;;;;++++++;;;..............+++++++++**********
````````````````........````````   ````    ```````````````...;;;;++++++++++;+++;++++++++++++;;;+;;;;;;;;+++++++++++++++++++++++++++++;;;++++++++;;;..............++++++++***********
````````````````........```` ```    `````````````````````..;;;;++++++++++++;+;;++++;++++++++;.;++;;;;;;;+++++++++++++++++++++++++++++++++++++++;;;...............+++++++++**********
````````````````........````````   `````````````````````..;;;;+++++++++++++;;+++;;+++;;++++;;;;+;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;...............+++++++************
.```````````````........``````````````````````````````..;;;;+++++++++++***+;+++;+++;;+++++++;;;++;;;;;;;;++++++++++++++++++++++++++++++++++++;;;;................++++++*************
```````....````.........```````````````````````````...;;;;+++++++++++*****+;++++++;;++++;+++;.;++;;;;;;;;+++++++++++++++++++++++++++++++++++;;;;................;+++++++************
``````````````..........``````````````````````````...;;;;++++++++++*******+;++++;;+++;;++++;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++;;;;.................;++++***************
```````````````.........`````````````````````````..;;;;+++++++++++********+;+++;++++;++++;++;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++;;;;;.................++++*+**************
```````````````.........`````````````````.........;;;;++++++++++**********+;++++++++++++;;++;;;+;;;;;;...;;++++++++++++++++++++++++++++++;;;;;.................;++++*+**************
```````````````.........```````````````````.....;;;;++++++++++************+;+++++;+*++;+++;;;;;;;.;;;.....;+++++++++++++++++++++++++++++;;;;;;.................;+++*****************