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