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