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