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