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