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