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