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