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