***********===+++;;;;::::,,,,,,,:::::;;;;;+++++++++++++;;;:::,,,,.... ....,,,::::;;;;;;;;;;;;;;::::,,,,,,,...,,,,,,,:::;;+++===***********===+++;;;;::::::,,:::::::;;;;++++========++++;;;:::,,,
*******====+++;;;:::::::::::::::;;;;++++=========++++;;;:::,,,..... .....,,,,::::;;;;;;;;;;;;::::,,,,,..........,,,,:::;;;+++===********====+++;;;;::::::::::::::;;;;+++============++++;;:::,,,,..
***====+++;;;;::::::::::::::;;;;+++=============+++;;;:::,,,,.............,,,,::::;;;;;;;;;;;;::::,,,,..............,,,,::;;;+++=============++++;;;::::::::::::::;;;;+++====*******====+++;;;::,,,,,...
===++++;;;;::::::::::::::;;;;+++====********====++;;;:::,,,,..........,,,,,::::;;;;;;;;;;;;::::,,,,..... ....,,,,::;;;++++========+++++;;;;:::::::::::::::;;;+++====**********===+++;;::::,,,,,...
++++;;;;::::::,,,::::::;;;;+++===***********===+++;;::::,,,,,,,,,,,,,,,:::::;;;;;;;;;;;;;;::::,,,.... ...,,,,:::;;;+++++++++++++;;;;:::::,,,,,,,,:::::;;;+++===***********===+++;;;:::,,,,,,,,,
;;;;;:::::,,,,,,,,:::::;;;+++===***********====++;;;::::,,,,,,,,,,,,::::;;;;;++++++++;;;;;:::,,,.... ....,,,::::;;;;++++++++;;;;;:::::,,,,,,,,,,,::::;;;+++===***********====++;;;:::::,,,,,,,,
;;::::,,,,,,,,,,,,,::::;;;++===***%%%%*****===+++;%%%%:::,,,,,,,:::::;%%%%++++++++++++%%%%:::,,,.... ....,,,,:::;;;;;;;;;;;;;;;::::,,,,,,,,,,,,,,,,:::;;;+++===**********====+++;;;::::::,,,::::
:::,,,,,,.....,,,,,,:::;;+++===***%%%%***====+++;;%%%%::::::::::::;;;;%%%%+========+++%%%%:::,,,.... .....,,,,::::;;;;;;;;;;;;:::::,,,,,.........,,,,:::;;;+++===********====++++;;;::::::::::::::
,,,,,...........,,,,:::;;+++====**%%%%*====++++;;;%%%%::::::::::;;;;++%%%%==========++%%%%:::,,,..............,,,,:::::;;;;;;;;;;;::::,,,,,.............,,,:::;;;+++=============++++;;;::::::::::::::;;
,,..............,,,:::;;;+++======%%%%==++++;;;;::%%%%::::::::;;;++++=%%%%******====++%%%%::,,,,...........,,,,,::::;;;;;;;;;;;;::::,,,,..... .....,,,:::;;;+++=========+++++;;;;::::::::::::::;;;;
... ....,,,:::;;;++++======%%%%%%%%;;::::::%%%%::::::;;;+++===*%%%%******===+++%%%%::,,,,,,...,,,,,,,::::;;;;;;;;;;;;;;::::,,,.... ...,,,,:::;;;++++++++++++++;;;;:::::,,,,,,,:::::;;;++
....,,,,:::;;;+++++++++++%%%%%%%%:::,,,,,%%%%:::;;;+++===****%%%%****===+++;;%%%%,,,,,,,,,,,,,::::;;;;;++++++++;;;;:::,,,,.... ...,,,,:::;;;;+++++++++;;;;;::::,,,,,,,,,,,,:::;;;+++==
....,,,,:::;;;;++++++++;;;;;%%%%%%%%,,,,,,,,%%%%;;;+++===*******%%%%*===+++;;;::%%%%,,,,,,::::::;;;;++++++++++++;;;:::,,,,.... ....,,,,:::;;;;;;+++;;;;;;:::::,,,,,,,,,,,,,,,:::;;;++====*
....,,,,::::;;;;;;;;;;;;;;::::,,%%%%%%%%,,,,,,::%%%%+++===**********%%%%+++;;;::::::%%%%:::::;;;;+++++=======++++;;;:::,,,,.... .....,,,,::::;;;;;;;;;;;;::::,,,,,,........,,,,,:::;;+++====****
.,,,,::::;;;;;;;;;;;;::::,,,,,....%%%%..,,%%%%::;;%%%%===*******====++%%%%;:::::::::::%%%%;;;++++============+++;;;:::,,,..............,,,,:::::;;;;;;;;;;;::::,,,,,............,,,,:::;;;+++=====***===
::::;;;;;;;;;;;::::,,,,...........%%%%,,,:%%%%+++=%%%%========++++;;;:%%%%:::::::::;;;%%%%=====******====+++;;;:::,,,,..........,,,,,:::::;;;;;;;;;;;::::,,,,,..... .....,,,:::;;;+++==========++++;
;;;;;;;;;::::,,,,..... ....,%%%%:;;;%%%%====%%%%+++++;;;;:::::::%%%%::::;;;+++==%%%%********===+++;;::::,,,,,.....,,,,,,:::::;;;;;;;;;;;;;::::,,,,.... ....,,,:::;;;++++++==++++++;;;;::::
;;;;::::,,,,.... ....,,,::%%%%++++%%%%++++%%%%;;:::::,,,,,,,::%%%%;;+++===****%%%%***====++;;;::::,,,,,,,,,,,,,::::;;;;;+++++++;;;;;:::,,,.... ....,,,::::;;;++++++++++;;;;;:::::,,,,,,
:::,,,,... ...,,,,:::;;;%%%%++++++;;%%%%%%%%,,,,,,,,,,,:::;;%%%%===*%%%%****%%%%==+++;;;::::,,,,,,,,,:::::;;;;++++++++++++;;;:::,,,,.... ....,,,,:::;;;;;;++++;;;;;;::::,,,,,,,,,,,,,,
,,,.... ....,,,,:::;;;;;;;%%%%;;;;::::%%%%%%%%,,,,,,,,:::;;+++%%%%****%%%%**==%%%%;;;;::::::,,,::::::;;;;+++++======+++++;;;:::,,,.... ....,,,,::::;;;;;;;;;;;;;::::,,,,,,.......,,,,,:::
.... .....,,,,:::;;;;;;;;;;;%%%%::,,,,,.%%%%%%%%.,,,,:::;;+++===%%%%****%%%%=+++%%%%::::::::::::::;;;;+++============+++;;;:::,,,...... ......,,,,::::;;;;;;;;;;;;::::,,,,.............,,,:::;;;
...........,,,,,::::;;;;;;;;;;;:::%%%%,,......%%%%%%%%,,,:::;;+++=====%%%%====%%%%;;;;%%%%:::::::::;;;;++++====******====+++;;;:::,,,,...........,,,,,::::;;;;;;;;;;;;::::,,,,..... .....,,,:::;;;++
.......,,,,,::::;;;;;;;;;;;;::::,,%%%%... ...%%%%,:::;;;++++=====%%%%++++%%%%::::%%%%:::::::;;;+++====*********====++;;;:::,,,,,.......,,,,,:::::;;;;;;;;;;;;;::::,,,,.... ....,,,,:::;;;+++
.,,,,,,,::::;;;;;;;;;;;;;;::::,,,,%%%% ...%%%%:::;;;++++++++++%%%%;;;;%%%%::,,%%%%:::::;;;+++===************===++;;;::::,,,,,,,,,,,,,:::::;;;;;++++++;;;;;:::,,,,... ....,,,,:::;;;++++
,,,,:::::;;;;;+++++++;;;;;:::,,,,.%%%% ....%%%%:::;;;;+++++++++%%%%;:::%%%%,,,,%%%%::::;;;+++===************===+++;;;::::,,,,,,,,,:::::;;;;;++++++++++;;;;:::,,,,... ....,,,,:::;;;;;+++
,:::::;;;;++++++++++++;;;;:::,,,..%%%% ....,%%%%:::;;;;;+++;;;;;%%%%::,,%%%%,,,,%%%%,:::;;;+++===***********===+++;;;::::::,,,,::::::;;;;+++++=====+++++;;;:::,,,.... ....,,,,::::;;;;;;;;
:::;;;;++++========++++;;;:::,,,..%%%% ....,,%%%%::;;;;;;;;;;;;;:%%%%%%%%....%%%%%%%%,:::;;;+++===*********====+++;;;:::::::::::::::;;;++++===========++++;;:::,,,,..... .....,,,,,::::;;;;;;;;;
;;;;++++============+++;;;:::,,,..%%%%. ......,,,,%%%%:;;;;;;;;;;;::::%%%%%%%%....%%%%%%%%,:::;;;+++=====***======+++;;;;::::::::::::::;;;++++=====****=====+++;;:::,,,,............,,,,,::::;;;;;;;;;;;
;;+++=====******====+++;;;:::,,,,.%%%%......,,,,::%%%%;;;;;;;;;;;::::,%%%%%%%% %%%%%%%%,:::;;;++++==========++++;;;:::::::::::::::;;;++++===*********====+++;;:::,,,,,........,,,,,::::;;;;;;;;;;;;;:
+++====*********====++;;;:::,,,,,,%%%%.,,,,,,::::;%%%%;;;;;;;;;::::,,,%%%%%%%% %%%%%%%%,:::;;;+++++===++++++;;;;::::::,,,,,:::::;;;;+++===***********===+++;;;:::,,,,,,,,,,,,,,:::::;;;;;+++++;;;;;::
+===***********===+++;;;:::,,,,,,,%%%%,,:::::;;;;;%%%%+++;;;;::::,,,..%%%% ....%%%%::;;;;++++++++++;;;;;::::,,,,,,,,,,,::::;;;++====***********===+++;;;::::,,,,,,,,,,,::::;;;;;++++++++++;;;;:::
=************===+++;;;::::,,,,,,,,%%%%::;;;;++++++%%%%++;;;:::,,,,... %%%% ....,,,%%%%;;;;;+++++;;;;;:::::,,,,,,,,,,,,,,::::;;+++===***********====++;;;;:::::,,,,,::::::;;;;++++++===+++++;;;;:::,,
*********===+++;;;::::::,,,,::::::%%%%+++++======+%%%%;;:::,,,,.... %%%% ....,,,,:::%%%%;;;;;;;;;;::::,,,,,........,,,,,:::;;;++====*********====+++;;;:::::::::::::::;;;;++++==========+++;;;:::,,,..
***====+++;;;;::::::::::::::;;;;++%%%%=========+++%%%%::,,,...... ..%%%%,,,,::::;;;;%%%%;;;;::::,,,,,............,,,,:::;;+++=====****=====++++;;;::::::::::::::;;;;+++======***=====+++;;;:::,,,.....
=++++;;;;:::::::::::::;;;;+++=====******====+++;;:::,,,,............,,,,:::::;;;;;;;;;;;::::,,,,,..... .....,,,,:::;;;+++===========++++;;;:::::::::::::::;;;+++====*********===+++;;;:::,,,,........
;;:::::::::::::::;;;+++====*********====+++;;:::,,,,,.......,,,,,,::::;;;;;;;;;;;;;::::,,,,.... ....,,,,:::;;;+++++====+++++;;;;;:::::,,,,,::::::;;;+++===***********===+++;;;:::,,,,,,,,,,,,,,,:
,,,,,,,:::::;;;+++===***********===+++;;;:::,,,,,,,,,,,,,,::::;;;;;;+++++;;;;;::::,,,.... ....,,,:::;;;;+++++++++++;;;;:::::,,,,,,,,,,::::;;;+++===***********====++;;;::::,,,,,,,,,,,:::::;;;;
,,,::::;;;+++===***********====++;;;:::::,,,,,,,,,:::::;;;;+++++++++++;;;;:::,,,.... ....,,,,:::;;;;;+++++;;;;;;::::,,,,,,,,,,,,,,:::;;;+++===***********====++;;;;:::::,,,,,,:::::;;;;;+++++++
:::;;;++====**********====+++;;;::::::,,,,::::::;;;;+++++=====+++++;;;:::,,,.... ....,,,,::::;;;;;;;;;;;;;::::,,,,,,......,,,,,:::;;;+++===**********===++++;;;:::::::::::::::;;;;++++=========+
;;+++====********====+++;;;;::::::::::::::;;;;++++===========+++;;;:::,,,..... .....,,,,::::;;;;;;;;;;;;::::,,,,,...........,,,,:::;;;+++====******====++++;;;::::::::::::::;;;;+++==============+++
+++=====***=====++++;;;;:::::::::::::;;;;+++=====*****=====++;;;:::,,,,............,,,,:::::;;;;;;;;;;;::::,,,,,..... .....,,,,:::;;++++===========++++;;;;::::::::::::::;;;+++====*********===+++;;;
+==========++++;;;;:::::::::::::::;;;+++====*********====++;;;:::,,,,,.......,,,,,,::::;;;;;;;;;;;;;::::,,,,.... ....,,,,:::;;;++++======+++++;;;;::::::,,,,::::::;;;+++===***********===+++;;;::
++===++++++;;;;::::::,,,,,::::::;;;+++===***********===+++;;;:::,,,,,,,,,,,,,,,::::;;;;;;++++;;;;;::::,,,.... ....,,,:::;;;;+++++++++++;;;;;::::,,,,,,,,,:::::;;;+++===***********====++;;;::::
+++++++;;;;:::::,,,,,,,,,,,:::;;;+++===************===+++;;;::::,,,,,,,,,,:::::;;;;+++++++++++;;;::::,,,.... ...,,,,:::;;;;;+++++++;;;;;::::,,,,,,,,,,,,,::::;;;++====***********===+++;;;:::::