[-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/////[-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<>;///////////+++++++++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<////////////////;+++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/;;///;////////////``-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@</;;;;///////////////`/`/--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>;////////;//////////////``;+++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;//`/-----@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/;;//;;;///////////////////``/;-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;/`///;;/////;++;;//;;;;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>;;;/;;//;///////////////////////;++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<///////;;;;///;///;;//////;//++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/;/;;/;;;/////////////;;;/////;/////-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<````;///;;;;;///;;////////;;////;+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>///;/;;;;//;//////////////;;///////```/++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`<``/`////;;;;;;;;/;;;;;////////;///;----@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/;/;//;;/;;;;/;//;/;/////////;/;//;//////`/-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`</``////;////;;;;;///;;//////``;;;/;;;-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>/////;;;;;;;;///;////;;///////;;;////;/;/``;++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<`/`//`/;;;;/////;//;/;//;;/////`;;//;;;;;++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>//;;///;;;;;;;/////////;;/////////;;//////////`;-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<///////;;;//;/;;;;;;////;///;///`/////;;;;;/+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>/;;;;;;;;;;;;/;///;///;;/////////////////////``/++++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`<`/;;//;;;/;/;/;;///;;//////;///;;;////;;;;;;;------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/;;;;;;;;;;;;;;/;/////////////////////;///////////`;-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;;;;;;;;;;;;/;//////;;;;/////;//;/;///;;;;;;;;-----@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>;;;;;;;;;;;;;;;;/;;//;/////;;///////////;/////////``/;+++++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;;;;;;;;;;;/;;;//;;;//;///;/;///////////;;;;;;;;+++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>;;;;;;;;;;;;;;;;;;//;;/;//////;;;////////////;////////```;-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;;;;;;;;;;;;;;/;/;/////;/;;;/;;//```/`///;;/;/;;;;++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>;;;;;;;;;/;;;;;;;;;;////////////////////`/``///``//```/```;++++++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;;;;;;;;;;;;;;////`/////;;///;;;//////;;///;;;;;;;/;--------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////////``/`/``;-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;;;;;;;;;;;;;;;;;`/////;;;////;;////;//;//`;;/;;;;;/;+++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>//;//;;///;;/;;;;;;;;;;;;;;/;////////////`//`///////////////````;+++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;/;/;+++++@@@@@@@@@@@@@@@@@@@@@@@@@>;/////;-]@@@@@@@@@@<;;;;;/;;;;;;;;;/;;;;;;;;/;`////;;;////;;///////;;;;;;/;;;;;//;+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>/;/;///;//;//;;;;;;;;;;;;;/;///////`/////////////////////////``/``;++++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;//;/////++++++@@@@@@@@@@@@@@@@@@@>;;;;/////////;-]@@@@<///////;/;;;;;;;/;;;;;;;;;;;;///;;;;///;/////////;///;;;;;;;;;///---@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>/;/;/;;//;/;;//;;;;;;;;;;;;//;/;/////////////////////////`/````/`````/++++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<////////////------@@@@>;;-]@@@@@@<.>;;;;///////////;++[<////////////;///;;;;;;;;;/;;;;-;//;;////;;;///////////;;;;;/;;;;;//;-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>///;/;/////////;/;;;;;;;;;;;;;;/////////;/////`//////////`````/````/````;-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<//;///////////--@@@@@.>;;;/;;++++;//;;;;//////////////;//////////////////////;/;/;/;;;;;;;;;/////;;;/////``//;;;;;;;;//;////;/++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>//;///;////////////;;;;;;;;;;;;;///////////;////////;///////````///////````/-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;/;;/;/////////;+@@@@.>//////;/;+;;/;;;;;;;////////////////////////;//;;;///;//////;;;;;;;;;////;/;;;;/;//`/`//;;;;/;//;;;/;/;////////;//+++++++[@@@@@@@@@@@@@@@@@@@@@@@<////++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/;/;/////////////;///;;;;;;;;;;;;///////////;/;///////////``/`/`///////``````;-]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;;;;;//////////----/;;////////////;;;;;;;///////////////////////////;;;;;;;;/;/////;;//;;;;;;;;;;;;;;;;/;/////;;;;;///;/;;;///////;///;//;--@@@@@@@@@@@@@@@@@@@@@@@@@@.>/////+++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<///;/;/;;////////////;;;;;;;/;;;;;;////////;;;/;//////////````/////////////``/`;-----@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>;;;;//-]@@<;;;;;/////////////++///;;/;//////////;;;;;;///////////////////////////;;;;;/;;;///;/////;;;;;;;;;/;//;;;;;//////;;;;;/;;;;;/;///////;;;;;////++@@@@@@@@@@@@@@@@@@@@@@@@.>///////++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`<;//;;///////``////////;;;;;;;;;;;;;////////;///;;;//////`///////////////`/////``/;++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>;;;;;;;//;-;;;/;/;;////////////;///////;////////////;;;;////////////////////;//////;;;/;/;;;;;/;///;/;;;;;;;;;;/;;;;;;;/;///`/;;;;//;;;;/;//////;;;/;/;;///]@@@@@@@@@@@@@@@@@@@@@@@@</////`//++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>;;/;/;//;////////////;//;//;;//;;;;;;;//;////////;;;;;;/////////////////////////`````////;++++[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<;;;;;;;;;///;;;;;;;//;///////////////////////////////;;;;///////////////////////;///;;;/;;;;////////;;;;;;//;;;////;;;;;;;/;//;;;;;;;;;;;;;///;/;;;;;;////``/----@@@@@@@@@@@@@@@@@@@>/////```//-]@@@@@@@@@@@@@@@@@@@@@@@@@@@<///;;;;;;;;//////////////;;;;/;;///;;;;;;;////////;//;;;/;;//////////////////////////````////////////;;-;;;;;;;;;;;;;;;---@@@@@@@@@@@@@@@@@@@.;;;;;;;;;;++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.>;//;;++[@@@@<;;;;;;;;;;/////;;;;;;;;//////////////////;/////////////;;;;//////////////////////;//;;;/;;;;;;;///;//;;;;;;////;/;;//;;;;;;;/;/;;;;;;//;;;///;///;/;;//;`///;//++@@@@@@@@@@@@@@@@@@@@>////////`/-]@@@@@@@@@@@@@@@@@@@@@@@@@<;////;;;;;;;;///////////;/;/;;/;;;//;;;;;;;;;//;/////;;///;/;;;//;///////////////////////````//////////////;/;;/;////``/////`///;;;;;/////`/////////////////////////////////////////;;;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.//////////////////////////;;;;;;;;//;;;@@;;;;;;;;;///////////;;;;;;///////////////////////////////;;;;////////////////;;;////;;;;;;;/;;;;////;;/;;;;;;;/;;;/;;;;;;;;;;;;;;;;;;;/;//////////;;;/;/`/////;///@@@@@@@@@@@@@@@@@@@@//////////``/;@@@@@@@@@@@@@@@@@@@@@@@@//;///;;;;;;;;;;////`/////;;;;/;;;///;//;;;;;;;/;;/;/////;////;;;;;////`/`////////////////```````;;;;;;;;;;;;;;;;;;;;;//;////`////`////////////////////////``///`///`////////////////////`///////;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//////////////////////////;;;;;;;/////////;;;;;;;;////////////;;;;;/////////////////////////////////;/;;//////////////////;/;/;;;;//;;;;;;////;;//;;;;;;/;//;;;;;;;;;;;;;;;;;;;;;;/;///////;/;;///;//`/;//;//;@@@@@@@@@@@@@@@@@;////////;//```//@;@@@@@@@@@@@@@@@@@@;;/////;;/;;;;;;;;////////;//;;/;;;////;//;;;;;;;;;/;////////;///;;;;;/////////////////////``//``````;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////////////////////////////////////////////////;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
/////////////////////////;;;;;;;/////////;;;;;;;;;//////////////;;;;////////////////////////////////;/;;/////////////`///;/////;/;///;///////;;;;;/;;;;/;;/////;;;/;//;;;;;;;;;;;///////;;;;////////////;;/;;/;@@@@@@@@@@@@@@@@;/////////``/////;;///;@@@@@@@@@@@@@;//;///;/;;;;;;;;;;;/////////;//;//;///;////;/;;;;;;//;/////////////;;;;;////////`///////`////////`````//////////;;/;;;;;;;;;;;;;;;;;//;;;;;;;;;;;/;;/;;;;;;;;;;/;;;;;;;;;;;;;;;;;;////////;////////////////////;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
////////////////////////;;;;;;;//////////;/;;;;;;;;/;/////////;;;;;;/////////////////////////////`//;;;;///////////////////`/;///;/;;//;;;/;/;;/;;/;;///;//////;/////;;;;;;;;;;;///////;//;;////`///////;;;//;;;@@@@@@@@@@@@@@@////////```````/////////;@@@@@@@@@@/////;/;///;;;;;;;;;;//////////;////;//;////////;;/;;;////`///////;;//;;;;;//////////////`````////`````````////;;/;;;;/;///;;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;///////////////////@@@@@@@@@@@@@@@@@@@@@@@@@@@@
/////////////;;;;;;///;;;;;;;/////////////;;;;;;;;/////////////;;;;;/////////////////////////////////;;;/////////////////`/;;///;;;;;/;/;;;//;;;;;;;///;/////////;;;;//;;;;;;;;/;///////;/;//////`///;;;;;;;///;////////////////////////```//////////////;;;;@@;@////;;;;;/;/;/;;;;/;;;;/////////;//;///;/;///////;;;;;;;//////////////;;;;;;;;//////////////`/`///`````/``````/;;;;;;;/////////;////;;//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;///////;@@@@@@@@@@@@@@@@@@@@@@@@
////////////;/;//////;;;;;;;;;;////////////;;;;;;;;////////////;;;;;////////////`////////////////////;;;;////////////;;/;////////;;//;;;;///;;/;;;;;;/;//`//`/`//////`/;/;;;;;;/////;///;;;/;//`/////;/;;;/;///;///////``///////////;;//````////////`////////////////;;;//;;////;;;;;;;;;/;///;;;//;;;///;;/////////;;;;/;///////////;///;;;;;;;;////////////////``/````//```````//;;;/;/;//////;;//////`//////////////////////////////`//////////////;//////;;;;;;/;;;;;;//;;;;;;;;;;;/////////////////////////////
///////////;;////////;;;;;;;;;;////////////;;;;;;;;/////////////;;;///////////////////////////////`//;;;;/////////////////;;///;;;;;;;/////;;;;//;;///////`//`/`/`/;;///;;;;;;;////;/;/;;;//;;///`//;;;//;;;;///;///////`////////////;////``/////`//////////////////;/;;;/;;;////;;;;;;;;;///;;;/////////////////////;;;;//;//////////;////;;;/;;;/////////////////````/////``/`/////;///////////;////////;;////////////////////////`////////////////////////////////;;;/;////////////////;;;///////////////////////
/////////;;;////////;;;;;;;;;;//////////////;;;;;;//////////////;;;/;////////////`///////;////////////;;;/////////////;/;/;/;;/;;;;;;;;;//;;;;///////;``//`///````///;;;;;;;;;;////;;//;;;//;;;/;//;;;;;;/;;;;;/////``//`/////////////////////////```//////////;;/;/;;;;;;;/;//;/;;;;;;;;;;;;;/;;;/;//;;;//////////////;;;;//;;;/;///;///////;;;;;;;/////////`/////////////////////////;//////////////////////;//`////;;;///////////////////;/;;/;;;/;/;//;////////;;;/;;;;////////;;;//////;///////////////////////
////////;//;////////;;;;;;;;;///////////////;;;;;;;/////////////;;;/;/////////////////////////////`///;;;;///////////;;;;;;;;;;;;;;;;;////;;;;;;////;/`///```//`//`///;;;;;;/;/////;;;;;;//;/;;;;//;;;;;;;/;;;;//`/```//////////////;/;///////////`````////////;;;;/;;/;;;//;/;;/;;;;;;;;;;;;/////;;/;/////`/`////////;;;;;///;////;////;//;/;;;;;;;//////////////`//////;;;;;////////`/////////;;;;//////////;////;;;;/;/;////;////;;;/;;/////;///////////////////;;;;;;;;/;/////;;/;;;;;;;;;;////`/`//////////////
///////;;;;;////////;;;;;;;/////////////////;;;;;;;/////////////;;;/;/////////////////////////////////;;///////////////;;;;;;;;;;;;;;;;///;;;;;;///;;/`/`//```/`//``/;;;;;;;;/////;;;;;/;//;;;;////;;/;;;;;//;;;///`/`////////////////;////////////``````/////;;;;/;;;/;;;;///;;;/;;;;;;;;;;/;;////////////////////////;;/;;//;///;;//////////;;;;;;;/`///////////////;;;;;;;;;///////////////;///////;;///////;//////;;;;;;;;;;;;/////;///////////;/;/;///////////;;/;/;;;;////;/;///;;/;;;;;;/////////////;;///;;/
//////;;;;;////////;;;;;;;;;/////////////////;;;;;;;;////////////;;;//////////////`////////////////////;;///////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;//;;///`/`/```///`///;;;;;;;;////;//;;;;;;/////////;///;;;;//;;;///`/``/////////////;;;;/``//`/////````//////////;;/;/;;;/;;/;/;/;;;;;;@;;;;;;;;/////////;`/////;/;/;////;;;///;//;////;//;;////;;;;;;/////////////;;;;;;;;;;;;//////////////////////;;//////////////;///////;;;;;//;;;;;;;;;/;;/;////`///////;////////;;;;;;;;;;/;//////;/;/;////////////////;;;///
//////;;;;;;;//////;;;;;;;;///////////////////;;;;;//////////////;;;//////////////`/////////////////////;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;/////`/`/`///;;;;;;;;;//;//;;;//;;/;;;/;/;/////;/`/;;;;//;;/;/////`///////////;;;;;;////``````````////;/////;;;;;;;;/;;;;/;///;;;;;;;;;;;;;;///////;//;/;//;////;;/;/;;;;////;/;/;;////////`/////;;///`/;@@;;/;;;;;;;//;//;//;//;///;/;//;///;;//;/;;;/;;////////;/////;/;////////;;;;;;/;;;;///////////////////////;;;;/////;/;;;///////;//////////////////////
/////;;/;;/;;//////;;;;;;;/////////////////////;;;;//////////////;/;;//////////////////////////////////;;;;;///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;///////`//``//;;;;;;;///////;;;;;;;;;;;/`////;;/`//;/;;/;;////```/////////;;/;;;;;;;///````````//////;;/;;/;;;;;;;/;;;;;//;//;/;;/;;;;;;;;;///////;;;//;;;;/;;;;;;;///;;;;///;;///////////////;;/;;;/////;;;;;;;;/;;/;;///////;;;/;;;;/;;;;;;;;;///;;;;;/////////////;;;;;///;;////;////;;;;/;;;;`///////////////////;;;;;//;;;;;////////////////////`/////////
/////;;;;/;;;//////;;/;;;;////////////////////;;;;;///////////////;;;//////////////`///////////////////;;;;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;////````/``/`/;;;;;;;;;///;;/;//;/;;;;;;;/;;//`//;;;;;;//;;////`/////////////;;;;;;/////```````///////;;;;;/;;;;;;//;;;;/;;;;/;;;;;;;;;;;;;;;;;;////;;;;;;;/;;;;;;;;///;;;///////////////////`//;;;;;;////;;;;;;//;/;/////////;;;//;/;//;;;;////////;//////////////;;;;;;;//;////////////////////////////////;;/;///;;;;;/;;;;;;//;;/;;;;;/;;/////;///////////`
/////;/;;/;////////;;;;;;;////////////////////;;;;;;;////////////;/;;///////////////////////////////////;;//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;/////``/////;;;;;;;;///;;//////;;;;;;;;;;//;`//;;;;;;;/;//;//``////////////;///;/////````````/`////////;;;//;;;/;////;;;;///;//;;;;;;;;;/;;;;;;;////;;;;;;///;;;;;;;//;;;;/;///////////////;/////;;;/;;;;;;;;//;/////////////;;;//;;;;;;;;/;;;;/;/////////////////;;;;;;/////;/////;/////;///////////`///////////;///;;;;;;;;;;;;;;;;;;;;;/;//////;////////```
/////;;;///;/;/////;;;/;;/;;///////////////////;;;;;;/////////////;;;;//////////////////////////////////;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;//`///`;//;;;;;;;////;////;///;/;;;;;;;;//////;;;;;;///////////////////////;//////`/``````//////////////;//;;;;;;//;;/;;;;;;/;;;;;;;;;;;;;;///;/;;/;;;;;;;;;;;;;;;/;//;;;//;////////////////////;;;;;;;;;;/////;///////;/;/////;;;;;/;;;;//;//////;;;;;/////////;;;;;;;;;/;//////////;/////////////////////////;;;/;/;;;;;;;;;;;;;;;;;;;;/////;////////;///`
////;;;/;;/;;;/////;;/;;;/;////////////////////;;;;;//////////////;;;;;//////////////////////////////////;;;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;////////;;;;;;///;/;//////;//;/;;;;;;;////`//;;;//////;//////////////////////////````//////////;/////////;;;;;;;;///;;;;;/////;;;;;;//;;;;;;/;;//;;;;;;;;;;;;///;/;;;/;;;//////`//////////;;///;/;;;;;;;/;;///////;//;///////;;/////;;;;;;/;;/;;;;;;////;;/;//;;;;;;;;;/;/////////;;////;/;/;//;;/;;;////////;;/////;;;;;;;;;;;;;;;;;;///;;;///;;//////;//
///;;;;//;/;;;////;/;/;;//;/////////////////////;;;;/////////////////////////////////////////////////////;;;//////;;;;;;;;;;;;;;;;;;;;;;;;;;/;;/;;;;;;;;;;;;//////;;;;////;;;///////;///;/;/;;;;;;/;`/;;;;////;/;/////////////////////////`````/`///////////////////;;;;;;/;;;//;;;;/;;//;;;;;///;;;;;;;;;;;;;;;;;;;;;///;//;///;/;//////////////;/;//;////;;;;;///////////////;/////;;;;;;/////;;;/;;;//;/;;;;//////;/;;;;;///;;/;/////////;;//;/;///`///;/;;;;;;/;/;//;//;;;;;;;;;;;;;;;;;;//;//;;;;//;///;;/;///;
///;;;;/;//;;///////;;;;///;/////////////////////;;;////////////////////////////////`/////////////////////;;///////;;/;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;/;;///;;;;//;/;////////;;;;;;/;;//;;;;;;/;;;//////;//////;/////////////``````````/////////////////;;;;;//;//;;;;;;;;///;;;;;/////;;;;;;;;;;;;;;;;;;;;;/;////////;//``/`//////;;;///;/;;;;;;;////////;//////;;/////;;;;;;;;///;;;;;;///;;;;;;/;//////;;;;;//;;;;/;////;/;;/;;;;;/;/;/////;;;;;/;//////;//;;;;;;;;;/;;;;;;;;;//////;///;///;/;;;///
///;;;;;;;/////////;;;;;//;//////////////////////;;;;/////////////////////////////////////////////////////;;//////;;;;;;;;;;;;;;;;;;;;/;;;;;;/;;;;;;;;;;;;;;;;;;;;/;/;///;;`//////`////////;;;;;;;;;;;;;;;/;;;;//////;////////////////////`````````//////////////////;;;;;;;;///;;;;;;/;///;;;;/;/////;;;;;;;;/;;;;;;;;;;;;//;;/////;//////////;;;/;///;;;;;;;;//////;;/////////;///;;;;;;;;;;;///;;;///;;;/;;;;;//;;/;/////;//////;;;;;/;;;;;///;;;;;//////;;;;;;//;/////;;;;;;;;;;;;;;//;/;///////////////;;;;;///
//;;;;;;;///;//////;;;;;;;///////////////////////;;;////////////////;;/////////////////////////////////////////////;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////;;//////////;/`/`////;;;;;;;;;;;;;/;;;;;;;;;;;////////////////////`//``````////////////////;//;;;;;;/;;//;//;;;;;;;;///;;;//////;;;;;;;/;;;;;;;;;;;;;///////////;/;////;;////;;;;;;;;///;///;/;;;/;////////;;;;;;;;;;;;/////;//;;;;;;;;;;;;;;/;/;/////;//;;;//;;;;;;;/;//;/;/;;;/;//;/;/////;;;;;;;;;;;;;;;;;;/;;;;;;/;///////////;;/;/;;///
//;;;;;;;///;///////;;;;;;////////////////////////;;////////////////;//////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;//////;/////`/////;;//`///;/;;;;;;;;;;;;;;;;;;/;;;////////////////////`/`````````/////////////////;;;;;;;;;/;;;;/;/;;;;;;;;;/;;//;//////;;;;;;;;;@;;;;;;;;;//////////`/;////;;;;//;;;;;;;;;/;;///;/;;;;///;;///;/;;;;;;;;;;;;;//;/;;;;;;;;/////////;;;;;;;;;;;;;;//;//;/;;;/;;///;;;////;;//;;////////;;;;;;;;;;;;;;/;;;;//;/////;//////////;///;/
//;;;;;;;///;///////;;;;;;/////////////////////////////////////////////////////////////////////////////////;;//////;;;/;;;;;;;/;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////;/////;///`//`/`///////;;;;;;;;;;;;;;;;/////////////////////////`/`/`````````//////////////;;;/;;;;;;;/;//;;//;;;;;;;;///;/;/////;;;;;;;;;;;;;;;;;;;;/////////////;//;;//;;;;;@;;;;//////////;;;;/////;///;;;;;;;;;;;;;;;/;/;;;;;;///////////////;;;;;;;;;;;;;;;;;;//;/;/;;/;;//;////;;;//;/;/;;;//;;;;;;;;;;/;;;/////;/;///;//;/;////;;;///
//;;;;;;///;;///////;;;;;;;;;////////////////////////////////////////;;////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;;//;/////`/;/`/;/;/`//;/;;;;;;;;;;;;;;//////////////////////////`/````````////////////////;;/;;;;;;;;;;;;;;;;;/;/;;;;;/;//;/////;;;;;/;;/;;;;;;;;;;;;;;;/////``///;;////;;;;;;;;;////;;///;///;;/////;;//;;;;;;;;/;;;;;;;;;;;;;;///////////////////;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////;;;;;;;/;/;;///;;;////
/;;;;;;;////;///////;;;;;;;/;////////////////////////////////////////;/////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;/;;;////;///`/```;;;;;/////;;;;;;;;;;;;;;/;;;;;////////////////////`/````````/////////////;//;;;/;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;/;/;;;;/;;;/;;;;/;;;;;;;;;;;;///``///;/;///;;;;;;;;;///////;//;;;////;/;;;;;;;;;;;/;/;/;@;//;;//;///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;/;;;;;;;;;;///
/;;;;;;;;;/;;///////;;;;;;;//////////////////////////////////////////////////////////`//////////////////////;//////;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////`/`//`/`;;;;;/////;;;;;;;;;;;;/;;;;;;;////////////////////`/````````////////////////;;;;;;;;;;;;;;;;;/;/;;;;;;;;;;;;@;//;/;;;;;/;;/;/;//;;;;;;;;;;;;//////////;/;;;;;;;;;///////////;;;////////;/;;;;;;;;;;;///;;;;/;//`////////////////////////;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;/;;/;;;///
/;;;;;;;;;/;///////;/;;;;;;;;//////////////////////////////////////////////////////////////////////////////////////;;;;/;;;;;;;;;;//;;;;;;;;;;;;;;;///;/;;;;;;;//;;/;;;;;;;//////////;;;////////;;;;;;;;/////;;;;;;;///////;;//`///////`/```````///////////////;///;;;/;;;;;;;;;;;;//;/;;;;;;;;;;;;@//`;;;;;/;;;/;;/;;//;;;;;;;;;;;;;/////;/;;;;;;;;;;///;;;;;/;///////////;;;;;;;;;;;;;;//;;;;;;///`//////////////////////////;;/;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//
/;;;;;;;;//;;////////;;;;;;////////////////////////;;/////////////////;///////////////`////////////////////////////;;;;;;;;;;;;/;;;//;;;;;;;;;;;;;;/////;;;/;;;//;;/;;;/;;;//;;/;///;;;///`/;//;;;;;;;////////;;;;;///////;;;////`//```````````````///////////;;//;;;;/;;;;;;;;/;;;;/;;;;;/;;;;;;;@@;;;;;//;;;;;;;;;/////;;;;;;;;;;;;;/;/////;;;;;;;;/////;;;;/;;///;//;/;/;;;;;;;;;;;;;;;/////////``//////////////////////////////;;;;;;//;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;/;
/;;;;;;/;;;;;////////;;;;;;;;;/////////////////////////////////////////////////////////////////////////////////////;;;;/;;/;;;;;;;;;;;;;;;;;;;;;;/;;////;;;;;;;;;///;;;;;;;;/////;/;;;/////////;;;;;;/////////;;;////////;;/;////``/```//`````````/`////`///;;;;;;;;;;;;/;;;;;;;;;/;;;;;/;;;;;;;;;;;;;@;;/;;;///;;;;;/;///;/;;;;;;;;;;///////;/;;;;;;;////;;;////;;/;//;//;;;;;;;;;;;;;;;;;///////``////////////////////////////;;;;/;;/;/;;;/;////;;;;;;;;;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;/;;;/;/;;////;//
/;;;;;;;/;;;////////;/;;;;;;///////////////////////////////////////////////////////////////////////////////////////;;;;/;;;;/;;;;;;;/;;;;;;;;;;;/;;;/;/;/;;;;;;;/;/////;;;;;;;;////;//////////;;;;/;//////;//;;;/////////;;/;/////`````````````````/`////`///;//;;;/////;;;;;;;;;/;//////;/;/;;;;;;;;;;;;;;;////;;/;;;;////;;;;;;;;;;;;;;////;/;;;;;;///;//////////;/;//;;;;;;;;;;;;;;;;;;;;;;////``///////////////////////////////;;/////;//;;;/;//;/////;;;;;;;;/;;;;;;;;;;;;;;;;;;/;;;/;/;;;;;;////;;/////;;;;///
/;;;;;;//;/;;/////`///;;;;;;/;/////////////////////////////////////////////////////////////////////////////////////;;;;/;;;;;/;;;;;///;;;;;;;;;//;;;;;/////;//;;;/;//;;;;;;;;;/`//;/;//`/////;;;;;/////////;;;;//////////;////////``//``````````////``////////;//;////;;;;;;;;;;;;;/;;;/;/;;;;;;;;;;;;;;;;@;;/;;;;;;;;;;;///;;;;;;;;;;;;/////;;;;;;///;;;;;;;////////;;;;;/;;;;;;;;;;;;;;;;;;/;///`/////////////////////////////`/;;;///;/;///;;;/;///;;///////;;/////////;////;/////;;;////;///;/;//;;//;;;;;;//;;;
/;;;;;;;/;;///////////;;;;;;;//////////////////////////////////////////////////////////////////////////////////////;;;;;///;;;;;;;;////;;;;;;;///;;;;;/;///;/;/////;/;;;;;;;;;;////;///;////;;;;;;;//////////;;/////////;//////////```````````/``/////////////////////;/;;;;;;;;;;;///////;;;;;;;;;;/;;;;;;;;;;;/;;;;;;//////;;;;;;;;;;/;;;;/;;;;;///;;;/;;;//;;/;/;;;;;;;;;;;;;;;;;;;;;;;;;//;///////////////////////////////;/`////;;/;/;;;;;;;;;;;;/;/;;;;;;//;////////////////;//;//////;///////;;;;;;;;;/;//;;/
;;;;;;;;;;;;///////`/;/;;;;;;;;;////////////////////////////////////////////////////////////////////////////////////;;;;;;;/;;;;;;;/////;;;;////;;/;/;;;;;/;;;/;///;;;/;;;;;;;;;////;//;;//;;;;;;;/////////;;;;////////////////////`````````````/////////////////////;;;/;;;;;;;;;;;;/;//;;;/;;;;;;;;;;;;;;;;;;;;;;;;/;/;/;;///;;;;;;;;;;;;//;;;/;/;;;;////////;////;;;;;;;;;;;;;;;;;;;;;;;;/;////////////////////////////////;/`//////////;;/;;;;////;;;;;;///;;///////////;;//////////;;;///////;/;;;;;;;;;;;;////
;;;;;;;;;;;////////`/;/;;;;;;;//////////////////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;;;;;;//;;;;///;;;;;;//;;;;;;;;/////////;;;;;;;;;;;/////;/;/;;;;;;//////////;;;/////////////////////````````````///////////////////////;;;;;;;;;;;;;;;;;/;/;/;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;/////;;;;;;;;;;;;;;;;;//;;;//;;//;;;//;///;;;;;;;;;;;;;;;;;;;;;;;;/;/;//////////////////////////////;/`////////;;;;;/;;;//;/;;;;///;///;;///;///;//////;;;;/;///;;;;/;//;;;;;;;;;;;;;;;///
;;;;;;;/;;;/////////`//;;;;;;;;////////////////////////////////////////////////////////`///////////////////////////;;;;;;;/;;;;/;;;///////////;/;;/;;;;;/;;;;////;/;///;//;;//;;;;//;//;;;;;;;;;;///////;/;;;;/////////////////////```````````///////////////////////;;;;;;;;;;;;;;;;;;;;/;/////;;;;;;;;;;;;;;;;;;;;;;;;;////;///;;;;;;;;;;;;;/;//;;////////;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;////////////////////////////////`/////////;;;;;;;;;///;;;;;/;//;;;;/;;;/;;;///;;;;;//;//;;;;;;;;/;/;;;;;;;;;;;;;;;;;
;;;;;;;;;;;/;///////////;;;;/;/////////////////////////////////////////////////////////////////////////////////////;;;;;;;;/;;;;/;///////;;;;;;;/;;;;;;;;/;;;/;/;/;;;;;/;;;;;/;;;;;///;//;;;;;;;///////;;//;;;////////////////////```````/`/`///``///////////////////;/;;;;;;;;;;;;;;;;;;/////;//;;;;;;;;;;;;;;;;;;;;;;/;;;//;///;;;;;;;;;;;;;/;;;;//;//;;///;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;//;/////////////////////////;///`//////////;/;;;;;;;;;;;;;;;//;;;/;/;;;;;;;;;;;;;;///////;/;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;/////////////;;;;;;;///////////////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;///;;;;;;;;;;;;;;;;;;;;//;;;;//////;//;//;;/;;;;;;;;;////;;;;;;;////////;//;/;/////////////////////`````/`````///```/////;////////////;;;;;;;;;;;;;;;;;;;;;;//;;;;/;;;;;;;;;;;;;;;;;;;;;;//;/;//;;;;;;;;;;;;;;;;;;/////;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;//////////////////////////////;/////////////;;;;;;/;///;;;//;;/;;/;///;;;;;;;;;;;;;///;///;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;/////////////;;;;;;;//////////////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;;;;;/;;;;;;;;;;;/;;;;;////;;;;;//;;//;/;;////;/;;;;;;;;//;;;;;;//;////////;/;;;///////////;;/////////``````````////``/////////;////////;;;;;;;;;;;;;;;;;;;;/;/;/`/;/;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;;///////;/////;;////;;;;;;;;;;;;;;;;;;;;;;;;;/;;;//;///////////////////////////;////////////////;;;;;;//////;//;;//;//;/;;;;;;///;;;;;/;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;/////////`////;;;;;;;/////////////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;;;;;//;;;;;;;;;/;;;//;;;;/;;/;;//;;;//////;;/;;;/;;;;;;;;;;;;;////////;;/;;;/;;/////////////////``````/`````/`//////////////////;///////;;;;;;;;;;;;;;;;;;;;;;;///;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;/;;/;////;///////;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;///////////////////////////////////////////;/;;;;;///;//;/;;;;/////;/;;;;/;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;;;;;
;;;;;;;;;;;;///////////////;;;;;;//////////////////////////////////////////////////////////////////////////;///////;;;;;;;;;;/;;;;///;;;;;///;////;;;;;//;;;;/;;;;//////;;;/;;;;;/;;;;;;;;;;///////;;;;;;;;//////////////////```//`````````///////////////////////////;;;;;;;;;;;;;;;;;;;/;;//;//;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;/;;;;;;;///;/;;///;////;;;@;;;;@;;;;;;;;;;;;;;;;;;;;;;;;/;;;////////////////////////////`/////////////;;/;;;;;/;/;;;/;;/////////;;;;;;;;/;;/;;;/;;/;;;;;;;;;;;;;;;;////;;;;;;
;;;;;;;;;;;;////////////////;;;;;;////////////////`/////////////////`//////////////////////////////////////;///////;;;;;;;;;;;/;;;;///;;;/////////;//;;;;;;;//;////;/;///;/;;////;;;;;;;;;;;/////;/;/;;;;;;;/////////////////``````````````/////`//`/`/////////////////;;;;;;;;;;;;/;;;;;;;;/////;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;/////////;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;///////////////////////////////////////////;;;;;;;;;//;;///;////////;;;;//;/;/;;////;/;;;;;;;;;;;;;;;;;;//;;/;;;;;
;;;;;;;;;;;;////////////////;;;;;;/////////////////////////////////////////////////////////////////////////;////////;;;;;;;;;;;/;;;;//;;;;////////;///;/;;;/;/;;/;////;//;;;;;/;;/;;;;;;;;//////////;;;;;;;;/////////////////`````/```//``````////`///////////////////;;;;;;;;;;;;/;;;;/;;;;/;///;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;///;;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;//////;///;;////////////;/////////;/////;;;;;;/;;;;////;;;;////;;;////;/;//;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;////////////////;;;;;;;;/////////////////////////////////////////////////////////////////////;;;///////;;;;;;;;;;;/;;;;;//;;;;;/;/;///;//;///;;;;;;///`;////;//;;/////;;/;;;;////////;///;;//;;;//////////////////````````/````````````////////////////////;;;;;;;;;;;/;//;;;;;;/////;;;//;;;;;;;;;;;/;;;;;;;;;;;@;;;;;;;;;;;;;//;/;/;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;/////;////////////////;/////////;//////;;;;;;;;;;;//;;//;;/;;;;//;;;/;/;;/;;;;;;;;;/;;;;;;/;;;;/;;;;;/;;;;;;/;
;;;;;;;;;;;;//////////////;//;;;;;;//////////////////////////////////////////////////////////////////;;;;;;;//////;;;;;;;;;;;;//;;;;;/;;;;;/;;//////;;/;;;;/;;;;///////////;/;/;/;/;;;;;//////////;;;;;;;;;;////////////////`/`````````````````/```////////////////////;;;;;;;;;;;;//;;;;;;;;;;/;///;/////;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;/;///;//;/;;//;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;///;;/;///////////;;;///////;;//////;;;;;;;;;/;/;/;;//;;;;;;;//;;/;;;;;;;;;;;;/;;;;;;;;;//;;;;;;;;;;/;;;;;;
;;;;;;;;;;;;;;/////////////;//;;;;;/////////////////////////////////////////////////////////////////;;;;;;/;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////;;;;;//;;/;;;;///////;///////;/;;////////////;;;;;;;;;/////////////////``````````````````````////////////////////;;;;;;;;;;/;;;//;;;;;;;;;;///////;/;;/;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;/////;//;/;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;//;///;////////////////;;/////;;;;;;;;;;;;;/;////;;;;/////;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;;;;;;
;;;;;;;;;;;;;;////////////////;;;;;////////////////`///////////////////////////////////////////////;;;;;;///////;;;;;;;;;;;;;;;;;;;;;/;;;;;;//;//////;/;;;;;/;//;//;;;///;;//////;;;/;;;/;;///;;;//;;;;;;;;;;///////////////`/`````````````````//```/`/////////////////;;;;;;;;;;;;;;;//;;;;;;;;;;//////////;;;;;;//;;///;;;;;;;;;;;;;;;;/;;;;;/;///;;;;;;/;@;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;///;;//////;//;////////;//////;;;;;;;;;;;;;;///;;;;//;;;;;;;/;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;////////////////;;;;////////////////``//////////////////////////////////////////////;;//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;/;///;;;;/;/;;////;////;;/`/``//;;;;////////;;///;;;;;;;;;///////`////////````````````````//`````````/``/////////;//;;;;;;@;@/;;///;;;/;;;;;;;;;;////////;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;/;;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;////;/;///////;////;;/;;;;;;;;;;;;;;;//;;;;/;/;//;;;;;;;/;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;///////////////;//;;;//////////////````////////////////////////////////////////////;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;//;;/;/;///;;///;/;/`//;/`/////;;;;/;//////;//;;;/;;;;;;/;////////`////////``//``````````/``/````````````///`/////;/;;/;;;;;;;;;;;;;/;;/;;;;;;;;;;;;////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////;/;///;///;;;;;@@;@;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;/;;//////;/;;////;//;;;;;;;;;;;;;;;;/;;;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;
;;;;;;;;;;;;;////////////////;//////////////////`````//////////////////////////////////////;////////////////////;;;;//;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;/;/;/;;;/;;//;/;;//`///;////;;;;;//////;;;;;;;//;;;//////////////;;/////````//````````//````````````/////////////;;;;;@;;;;;;;;;;;;;/;;;;;;;;;;/;/////;/;;;;;;;;;;;;;;;;;/;;;;;;;;;;///;////;//;;/;;;;;;;;;;;;;;;;;///;/;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;///;;///;;//;;;;;;;;;;;;;;;;;;;;;;;;/;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/;;;;;;;;;;;;;;////////////////;;///////////////````///////////////////////////////////////;;/////////////;//////////;;;;@@@;;;;;;;;;;;;;;;;;;/;///;/;/;;//;;//////////;``;;/////;;;;;//;;;/;;;;/;//;;;;;;;;;/////////;;////////`////`````/`/`````//``````///////////;;//;@@@;@;;;;;;;;;;;;;;;;;;;;;;/;/;//;/;;;;;;;;;;;;;;;;;;/;;;/;;;;;/;//;///;////;;;;@;@;;;;;;/;/;;//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;;;;;;;/;//;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//;;;;;;;;;;;;/////////////////////////////////````/`/////////////////;//;/;//////////////;//;//////////////////////;;;;;@@@@;;;;;;;;;;;;;;;;;/;/;;/;/;;;;/;;///;;;;;;;;//;/;///;;;;;;/////;////;;;/;;;;;;;;;////////;;;;//////////`//````/`/`````/////```//////////;;;/;;;@@;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;///;;;;;;;;;;/;;////;;;;;;;////;;/;//;;/;/;;;;@;;;;;//;//;/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;;;;;;;////;;;;;;;;;;;;;/;;;;;;;;;;;;/;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///;;;;;;;;;;;////////////`///////////////////////```/////////////;/;///;/;//////////////;;;/////////////////;/;/////;;;@@@@@@@@@@;;;;;@@@;;///;//;;//;;;;/;;;;///;///;//////////;;;;//////////;;;;;;;;;;;;;;////////;;;;////////`//////````````////////////////////;/;;;;;@@@;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;////;;;;;;;/;;;//;///;;;;;;;;;@@;;/;////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;;;;;;;///;;;;;;;;;;;;////////;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
////;@;;;;;;;;;///////////`////////;;///////////////`///////////;//;//////////////////////////////////////////;/;/;//////;@;;;;;@@@@;;@@@@@;;;;/;/;/;;;;;;;//;;///////////`//////;;//;;////////;;;;;;;;;;;;;;;//////;;;;////////////////```````////////////////////////;;;;@@@@;;@;;;;;;;;;;;;;;;;;;;;;;;;//;;///;;;;;;;;;;;;;;;;;/;///;;/;;;//;////;;;;;;;;;;;/////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;///;;;;;/;;/////////////;;;/;;;/;/;//////;;/;/;;;;;;;;;;;;;;;;;;;//;;;//;;/
////;;@;;;;;;;;;//////////////////////////////////////////////////////////////////``/////////////////////////////;;////;/;;;;;;;;;;;@@@@@@@@;;;;;;;;;;/;//;;////;////////////////;///;////////;;/;;;;;;;;;/;;;//////;;;;/////////;/;/////````/////////////////////////;;;;;@@@@@;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;;;///;;;/;/;//;;/;;;;;;;;;;/;;/;;/////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;///;;;;;///////////////////;;;;/;//////;///;;;;;;;;;;;;;;;;/;;;;///;;//;/;;
/////;;;;;;;;;;/////////////////////////////////////////////////////////////////////////////;;///;/////////////////////////;;;;;;;;;;@@@@@@@@;;;;;;;;;;;;;/;;//;;;/////;////;///;///////;/////;;;;;;;;;;;;;;;;;//////;;///////;;;///////`````///////////////////;///;;;;;;;@@@@@@;;;;;;;;;;;;;//;;/;;;;;;;;/////;/;;/;;;;;;;;;/;;;;;;//;;//;;;;;;/;/;;;;;;//;;;;/////////////////////////;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;@@;;//////////////////////////;;/;/;//////;;;;;;/;;;;;//;///;;//;///;//;
//////;@;;;;;;;//////////////////////////////////////////////////////;;/;///////`/////////////////////;//;/////////////;//;/;;;;;;;;;;@@@@@@@@;;;;;;;;;;;/;;;//;;/;;;;;////;/;///////////;////;;;;;;;;;;;;;;;;;//////////////;;///////``````///////////////;;;;;/////;;;;;;@@@@@@@@@;;;;;;;;//;;;//;;;;;;;;;;;;//;;/;/;;;;;;;;;;;;;//;//////////;;;;;;;;;;///;;;/////////////////////////;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;//////////////////////////////;/////////////;/;;;/////;/;///////;;//;
;//``/;;@@;;;;;;/////////////////////////;;;;//;/////;;///////////////;;//;////////;///;//;/////;///////////////////////////;;;/;;;;;;;//;@@@@@;;;;;;;;;;;;;;//;;;;;;;;/;;/;//////////////;///;;;;;;;;;;;;;;;;;////;;;;/////;;/;////``````////////////////;;;;/;////;;/;;;;@@@@@@@@@@;;;;;;;;/;;;///;;;;//;;;;;;;;;/;;;////;;;;;;;;;/////////;//;;;@;;;;////////;/////////////////////////////;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;/;//////////////////////;///////////////;/;/////////////////////////;/
;//```/;;;@;;;;;;/////////////////;////;;;;;;;;;;;;/;///////////;/;///;;//////////;/////////////////;///////////////////////;///;;////;/;///;@@@@;;;;;;;;//;;////;;;;;;;/;/;////////////////////;;;;;;;;;;;;;;;////;;;////////;;///`````////////////////;/;//;;////;/;;;;;;;@@@@@@@@;;;;;;;;;/;;;///;;;;;/;;;;;;;;;//;;;//////;;;;;//;///;//////;;;;;;;/;//////;//////////////////////////;////;;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////////////////////////////////////////////////;
/;//`/`/;;;@;;;;;;/////////////////;;//;;;;;;;;;;;;/////////////;;/////////////////////;;/;/////;////;///////////////////////////;////////////;;@@;;;;;;;;;;;;;;///;;;;;;///////////////////////////;;;;;;;;;;;;///;;;;///////;;///````/`////////////////;/////;///;;;;;;;;;;@@@@@@@;@;;;;;;;;;;/;/;/;;;;//;;;/;;;/;;;;;;;/;;;;;;;;;/////;;;;;;;;;;;;;//////////;/////////////////////////;////;;;@@@;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////////////;///////////////////////////////////////////
/`;//```;;;;;;;;;;;////////;;;/////;;;;;;;;;;;;;;//////////////;;///;;///////////////;;;//;;//;/;;///////;///////////////////////////////////;//;@@@;;;;;;;;;;;;/////////////////////////////;////////;;;;;;;;@/////;/////////////////`/////////////////;/////////;;;;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;/;;;;//;;;/;;;;;;;/;;/;;;;;;;;/;/;////;;;;;//;;;;;///////////;/////////////////////////;////;;;;@@@@;/////////////;;;;;;;;;;;;;;;;;;@;;;///////////////////////////////;;////////////;///////////////////////////
/////``//;;;;@;;;;;//////////////;;;;;;@;;;;///;;///////////////;///////////////////////////////;/////////////////////////////////////////////////;@@;;;;;;;;;;;;;;;///////////;////////////////////////;;;;@@@;///////////////////////`/////////////////////////;;;;;;;;;;;;;;;@@@@@@;;;;;;;;/;;;;;;;;;/;;;;/;/;;/;;;;;;;;;;;;;;;;/;///;/;;;/;;;;;;;;//////////;/////////////////////////;////;//;;@;//////////////////;;;;;;;;;;;;;;@;;;////////////////////////////;;;;;;///`/`//////////////////////////////////
//////```;;;;;@;;;;;;;;;////////;;;;;@@@@@/;/;;///////////////////////;//;//;;/////////;;///;///;//;//////////////////////////////////////;///;//;/;@@;;;;;;;;;;;///////////////////////////;;////////////;;;;;;////////////////////```/////////`////////////////;;;;;;;;;;;;;;;;;@@@@;@;;;;;;;;;;;;;;/;;;;;;/;;;;//;;///;/;;;;;///////;/////;;;;;;;;///////////;/////////////////////////;///////;;//////////////////////;;;;;;;;;;@;;;;;/////////////////////////;/;//////;/;;;///////////////////////////////////
///////```;;;;;@;;;;;/////////;;;;;@;;;;@;/;/;////////////////////////////;;/////////;////////////;;///////////////////;///////////////////////;//;/;@@@;;;;;;;;;////;;//;/;;;////////////////////////////;;;;@@/////////;////`////```/``/////```//////////;;;;/;;;;;;;;;;;;;;;;;;////////;;;;;;;;;;;;;;;;;;;;;;//;;;;/;/;;;;;;;;/;;;/;;/////;;;;;@;;////////////;////////////////////////;//////////////////////////////////;;@@@@@;;;;;;//////////////////////////;/;;//;/;///////////////////////////////////////
;///`//```//;;;;;;;;;;///;///;;@@;;;;/;;//////////////////////;///////;;///////////;//////;////;/////////;////;//////////////////////////////;;//////;@@@;;;;;;/;;;;;/////;;////////////////`/////////////;;;@;@;///////;//////////``/```///`````````/////;;;////;;;;;;;;;;;////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;////;;;;;/;/;/;;;;;@;;;////////////;;///////////////////////;////////////////////////////////////;@@@@;;;;;;;/////////////////////////;/;////////;;////;;/////////////////////////////
;///////```//;/;;;;;@@@;;;;;;@;;;///////;///;////////////////////////;/////;;////;///;;//////;;////////;///////////;///;////////////////////////////`/;@@@@;;;;;;;;//////;////////;////////////////////////;;;;@;///////////////`////`````/``//`````````/`///;///;;;;;;;;;///////////////////////////;;;;;;;;/;;;;;;;;;;;;;;;;///;//;;;;;;//;;;;@;;;;////////////;;///////////////////////;//////////////////////////////////////@@;@;;;;;/////////////////////////////////////;;;;;;;;/////////////////////////////
/;///////```///;/;;;;;;@;;;;;;;;/////;/;;;//////////////////////////////;////////;/;/////;;///;///;;//;//////;//////;///;/`///////////////////////////;;@@@@;;;;;;;;;;//;//;;;/////;////////////////////////;;;@;////////////////``//`````````````````````////////;;;;;;;;//////////////`//////////////;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;///;;;;;@;;;;////////////;;///////////////////////////////////////////////////////////////;@;;;;;;/////////////////////;/////////////;//;;;;;;//////////////////////////////
/////////````/////;/;/;;;;/;//////////;///////////////////////////////;;//;///;///;//;;/;///;;;/////;////////;/;///;;//;;//;;///////////////`///////////;@@@@@;;;;;;/;/;;/;;;;///////////////`;;///////////;;;;@;;//////////////`/`````````````````````//////;///;/;;;;;;;//////////////````//`//////////;;;;;;;;;;;;;;;;;;;;;//////;;/;/;;;;@;@@;;;;/////////////;////////////////////////////////////////////////////////////////;;;;;;/////////////////////;//;///////////;;;/@@@@@//////////////////////////////
//;///////````////////;///;/////;/////////////////////////////////////////;//////////;////////////;/;/////////;;//;;///;/////////////////////////////;/;;;@@@@@@;;;;;;;;;;;;;;;//`/////////////;////////////;;;;;;////////////`````````````````````````/``/////;;///;;;;;;///////////////``///////////////;;;;;;;;;;;;;;;;;;;;//////;;;/;/;;;;@@@;;;;;////////////;;//////////////////////////////////////////////////////////;//////;;;;//////////////////////;//////////;;;;;;/;@;;;//////////////////////////////
//`////////```///////////////////////;;/////////////////////////////////;/////////;///////////;;/;;;///////;//;//;;;;///////;/////////////////////////////;@@@@@@@;;;;;;///;@;;/////////////////////////////;;;;;;///////////````````````````````````/`/`////;//;//;;;;;;;////////////////////////////;////;;;;;;;;;;;;;;;;;/;///////;;;;;;;@@@@@;;;;;////////////;;;////////////////////////////////////////////////////////////////;;;;//////////////////////;/////////;;;;;;;;;;/;///////////////////////////////
;//////////`````/////////////////;//;;/////////////////////////////////;//////////;////////;;/;;;;//;///////;;;///////////;////////////////////////////////@@@@@@@@;;;;;///;//;;///;///////////////////////;;;;;;;/////////``````````````````````````//////////////;;;;;/;/////////////////////////////;;;//;;;;;;;;;;;;;;;;;////;/////;;;;@;@@@@;;;;;////////////;;///////////////////////////////////////////////////////////;//////;;;/////////////////////;////////;;;;/;//;;;//////////////////////////////////
;//`;////////````//////////////////;////////////////////////;/////////////////;;//;////;;//;;;;;;;;;///;///;;//`;;//////////////////////////////////////////;@@@@@@@@;;;//////;////;/;;/////////;///////;////;;;;;/////////``///////`````````````````///////////////;;;//////////////////////////////;;/////;;;;;;;;;;;;;;;///;//;/;/;;/;;;;@@@@@@;;;;////////////;///////////////////////;/;////////////////////////////////////;;/;//;;////////////////////;///////;;;/////////;/;;///////////////////////////////
;;//`////////````////////////////;;;//////////////////////////;//////////;;//;////;/////;;;;;;;;;;///;;///;;//;//;/////;////////////////////////////////////;@@@@@@@@@;;//;////;/////;///;//////;/;//////;//;;;;;;/////////``///////`/``````````/```/////////;;;///;;;;/////////////////`////////////;///;//;;;;;;;;;;;;;;;/;;//;;;////;;;;@@@@@@@;;;;////////////;;//////////////////////;;//////////////////////////////////;;/////;//;////////////////////////////;;/////;/;;/;;;////////////////////////////////
;;;/`/////////````/////////////;;;;;;/////////////////////////;;/////////;//;;///;///////;;;;;;;;/;///;;;//////;/;;/////////;////////////;//;/////////////////;;;@@@@@/;/////;;/////;;;;;///;//;;////////;;//;;;@;//////////////////`````````````````/`///////;/////;;//////////////////```//////////////;//;@;;;;;;;;;;;;;;////;;/;//;;@@;@@@@@@@;;;;;///////////////////////////////////;;////////////////////////////////////////////;;/////////////////////////;;//////;;;;;;;;;;///////////////////////////////
;;;//`////////`````/////////////////////////////////////;;////////;///////////;;;;;//////;;;;;;;;;/////;////;/;/;/////////////////////;;///////;////////////////;;;@@@;;;;;;;//////;;/;;//;;///;;////////;;;;;;;@;/////////////////////```````````````///;///////;///;///////////////////////////////////;//;@;;;;;;;;;;;;;;///;;//;/;;;@;@@@@@@@@;;;;;///////////////////////////////////;/////////////////////////////;//;/////////////;;///////////////////////;;/////;;;;;;;;;;;;/;/////////////////////////////
;;;;/``;////`//````//`//`//////;;;;;;////////////`////;;/////;/;///////////;/////;;//////;;;;/;;///;;/;/;;;;//;;/;;//////////////;;////`/////////;////////////////;;;;;;;;;;;//;;/;;;;/;/;;;;;;;;////;;;;;;;;;;;@;;///////////////////////````````````/`/////////////;//////////////////////////////////////;@@;;;;;;;;;;;;;///;/;/;;;;;;;@@@@@@@;;;;;;//;;/////////////////////////;/////;//////////////////////////////;///////////////;;;//////////////////////;/////;;;;;;;;;;;;;;//////////////////////////////
;;;;;//`;///////````///`//////;//;;//////////////`////////////////;;///;/////////;;;///;;;;;;;;///////;;;;///;;/;;/;;////;///////;;/;/;;;;//////////////////////////;;;;;;//;;/;;;;;;;;;/;;;;;;;;/////;;;;;;;;;;@;;;////////////////////////````````````//```///;////;//////////////////////////////////////;@@@;;;;;;;;;;;;///;;;//;;;;@@;;@;@@@@;;;;;;/;//////////////////////////;;///;;////////////////////////////;;/////////////////;;;////////////////////;///////////////;;;;;;;////////////////////////////
;;;;;//`////////`````/////////;;////////////////`////;///////////////////;/;/////;;////;;;;;;;;;;/;;///////////;;///////;;;;/;///;;;;////////////////////////////////;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;///////////////////////////`////``````//`////////;///////////////////////////;//////////;@@;;;;;////;;;;;//;;;/;;;;;;;;;;;;@@@@;;;;;;;;////////////////////////////;;;;///////////////////////////////////////////////;;;//////////////////////////////////////;;;;;;;/////////////////////////;
/;;;;;//`////////````//`//`//;/;;//////////////`//;//;/;//////;///;/////;/;/////;;;///;;;;;;;;;;////////////////////;///;//;;/////;////;///////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;//////////////////////////////````//`````///////////////////////`///////////////////////;@@@@@;////////////;;//;;;;;;;;;;;;;;@@@;;;;;;//////////////////////////////;;/////////////////////////////////////////////////;;;//////////////////////////////////////;;;;;;;////////////////////////;
/;;;;;;/``///////````////////;;;;;/////////////`//////;;//////////////;////;///;/;;///;;;;;;;;;//////////////////////;;;;;;//;;//;//;/////////////////////////////;////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;///////////////////////////////``````///////////;/;/////////////`//////////////////////;;@@@@@/////////////////;;;;;;;;;;;;;;;;@@;;;;////////////////////////////////;;////////////////////////////////////////////////;;;;;///////////////////////////////////////;;;;///////////////////////;;
`/;;;;;//``///////````///////;;;;;;//////`//``/`///////////////////////;////;////;;;;;;;;;;;;//////////////////////////;;;/;///////////////////////////////////////;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;////////////////////////////``/````/////////;/;;;;/////////////```////``////////////;;;//`///////////////////////;;;;;;;;;;;;;;;@;/////////`///////////////////////////////////////////////////;///////////////////////;;;;//////////////////////////////////////////;;;////////////////////;;;
//;;;;;;//``;////`/```///`///;;;;;//////`///`/////////////;//////////;/////////;;;;/;;;;;;;;/////////////////////////////;/;;///////;///////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;///////////////////////////`/````````/////;/;/;;;;////////////``````````/////////;;;;//////////////////////////////;;;;;;/;;;;;;;;////////``////////////////////////////////////////////////////////////////////////////;///////////////////////////////////////////////;//////////////////;;;;
///;;;;;;/``///////````/////;;/;;////``/////;/////////////////;////////////////;;;;;;;;;;;///////////////////////////////////;;/;///;/;/////////////////////////////;;;;;;;@;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;@@@@@;;///////////////////////////```/`/`/``//////;;;;;;////////////````````//////////;;;;////```///////////////////////////;/////;;;;;/////////`/////////////////////////////////////////////////////////////////////////////;;;///////////////////////////////////////////////////////////////;;;;;
////;;;;;//``;////`/````////;;;;;///////////;//////////////////;//////////`;///;;;;;;;;;;;;//////////;////////////////;/////;///;///////////////////////////////////;;;;;;;@@;;@@@;@;@;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@;;;/////////////////////////////``//```///////;;;;;/////////////////```//////////;;;////````////////////////////////////////////;////////////////////////////////////////////////////////////////////////////////////////;;;;///////////////////////////////////////////////////////////////////
//`/;;;;;;//``;///``/```////;;;;;///```/;;/;///;//////////////////////;/////;///;;;;;;;;/;/;;/;//////////////////////////////;;;/;//;//;///////////////////////;;///;;;;;;;@@@@;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;@@@@@@;;;/;///////////////////////////////`/////////;;;;;///////////////```/////;;//////;;////````/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////;;;;;/;////////////////////////////////////////////////////////////////
/////;;;;;;//`/////////``///;;;;;////`/;;///;;/;/////////////////////////////////;;;;;;;///;///;//////////////////////;/;;;;//;/;//////////////////////////////;;/////;;;;;;@;//////////;;;@@@@@@;;;;;;;;;;;;@@@@@@@@;;;;////////////////////////////////`/////////;;;;;//////////`````//////;/;;///////////```///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////;;;;;;////////////////////////////////////////////////////////////////
;/////;;;;;;//``///////``///;;;;;/////;;;/;//////////////////////////////////;////;;;;;;/;;//;////////////////////////;;;;;;;;/;;;;//;//////////////////////;;//;///;;;;;;;////////////////;@@@@@@@@;;;;;;;;@@@@@@@@@;;;/;/////////////////////////////////////////;;;;;//////////``/////////////////;//////```///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////;;;;;;////////////////////////////////////////////////////////////////
;;////;;;;;;;//``///////`///;;;;//////;;/;////`/;////////;/////////////////////;;/;;;;;;//;/;////////////////////////;///////;;;;;/;/;/;//////////////////;;;;;;;;////;;;/////////////////////@@@@@@@@;;;;;@@@@@@@@@;;;;;;////////////////////////////////`////////;;;/////////////``//////////;;;;;;///////`////////////////////////////////////////////////////////////////////////////////////////////////////;////////////////////////////;;;;;/////////////////////////////////////////////////////////////////
@;;;///;;;;;;;/``//////////;;;;;;////;;/////;////////////;////////////////////;////;@@;;/;;///;///;;;;//;////////;//////////;;;;;/;/;/;//;/;/;/;;/////;;;;;//;;;;;//;/;;////////////////`///////@@@@@@;@;@@@@@@@@@@@@;;;;;///////////////////////////////```//////////////////////////////////;;;;;;;///////``/////////////////////////////;////////////////////////////////////////////////////////////////////;///////////////////////////;///////////////////////////////////////////////////////////////////////
;;;;////;;;;;;//``/////////;;;;;/////;;;;////////;//////////////////////////////;;/;@@;;;;;;//;;;/;/;;/////;///;//;;///////;//;;;;;;;;;;;;;;;;;;////;;;;;;;;;/;;;;//;;;//////////////////////////;@@@@@@@@@@@@@@@@@@;;;;;;;;;;//////////////////////////````///////////;//////////////////////;;;;;;;//////////////////////////////////////////////////////////////////////////////////////////////;////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/;;;/////;;;;;//```//////;;;;;;;////;;;///;;/;/;/;/////////////////////;;////;/////;@/;/;;;/;;;;;;;//;//;;;//;;//;;//;//;;;;;;/;;;;;;;;;;;;;;;;///////////;;;/;;;;//;;//;//////////////////////////@@@@@@@@@@@@@@@;;;;;;;;;;;/;;;//////////////////////`//`//////////;;;///////////////////////;;;;;;///////`//////////////////////////////////////////////////////////////////////////////////////;;/////////;/////////////////////////////////////////////////////////////////////////////////////////////////////
//@;/////;;;;;;//``//////;;;;;;;////;;;;//;/;//;//////////////////;`////////////////;;;;/;;/;;;;;/;;/;/;;;;/////;;/;//;;;;///;;;;;;;;;;;;;;;;////////////////;;;;;;;;;//////////////////////////////@@@@@@@@@@@@@;;;;;;;;;;;;;////////////////////////////////////////;;;;/////////////////////;;@@@;///////////////////////////////////////////////////////////////////////////////////////////////;;;///////////////////////////////////////////////////////////////////////////```//////////////////////////`////
///@;///`/;;/;;///``;/////;;;;;;////;;;;;///;/////;//////////////////////;///////////;/;;;;;;;;;////;;;;;;///;//;//;//;;/////;;;;;;;;;;;;;;///////////////////;;;;;;;////////////////////////////////@@@@@@@@@@;;;;;;;;;;;;;;/////////////////////////////////////////;;;;////////////////////;;;@@@////////////////////////////////////////////////////////////////////////////////////////////////;;////////////////////////////////////////////////////////////////////////////``//////////////////////////`/////
//;@;;/////;;;;///``///////;;;;;;///;;;;///;/;/////////////////////;;//;////;;////////;;//;;;;;;;;;/;///;/;/;/;;;/;/;;;////////;;;;;;;;;;///////////////////////;;;;;//////////////////////////////;//@@@@@@@@;;;;;;;;;;;;;;;////////////////////////////////////////;;;;;;;/;///////////////;;;@@@;////////////////////////////////////////////////;//////////////////////////////////////////////////////////////////////////////////////////////////`///////////////////////```//////////////////////////////////
///;@;//``/;;;;;;//``;;//`//;;;;;//;;;;///;;/;;//////////////////;;/;////;;////`//;`////////;;;;;;;;;;;;;/;;///;////;;///;//;;;/;;;;;;;///////////////////////;/;;;;//////////////////////////////////;@@@@@;@;;;;;;;;;;;;;;/////////////////////////////////////////;;;;;;;;;//////////////;;;;@@@;/////////////////////////////////////////////////;//////////////////////////////////////////////////////////////////////////////////////////////``////////////////////////`/////////////////////////////////////
////@;;///`/;;;;;///``;;//`/;;;;;///;;;;//;;;;//;//////////`//////;/;;//;;/;;//;///////;;////;;;;;;;;/;;;;;;;;;;;;//;;;//;;;;;;;/;;;;;////////////////////////;;;;;;/;/////////////////////////////////;;;;;;;;;;;;;;;;;;;;//////////////////////////////////////////;;;;;;;;;;/////////////;;@@@;@//////////////////////////////////////////////////;/////////////////////////////////////////////////////////////////////``/////////////////////`//`//////////////////////```/////////////////////////``//////////
////;@;;/////;;;;;;//`/;/////;;;;///;;;//;;;/;;/////////////////////;///////;;///;//;/;//;/////;;;;;;;/;;;;;;;;;/;;;;;/;;;;;;;;;;;@;;//////////////////////////;;@@////////////////////////////////////;;;;;;;;;;;/;//;;;;;//////////////////////////////////////////;;;;;;;;;;//////////////@;;;;;////////////;//////////////////////////////////////;;////////////////////////////////////////////`////////////////////```////////////////////````//////////////////////```//////////////////////////```//////////
/////@;;/////;;;;;;//``;//////;;;;//;;;//;/;;;;//;;/;///////////////;;//////////////;///;/;/////;;;;;;;;;;;;;;;;;;;;;////;;;;;;;;;@@///////////////////////////;;@@/;;////////////////////////////////;;;;;;;;;;;///;;;;;;/;/////////////////////////////////////////;;;;;;;;;;;;////////////;;;;;;////////////////////////////////////////////////////;;////////////////////``//////////////////////////////////////`/```//////////////////////```///////////////////////```///////////////////////`//``///////////
/////`@;;/////;;;/;///``;///`/;;;;;/;;;;/;;;//////;;//;////`///////;;/;/////////;///////;//;//;//;;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;@//////////////`//////////////@@;;/;/;///////////////////////////;//;;;;;;;;;;/;/;;;;;;;;////////////////////////////////////////////;;;;;;;;;;;//////////;;;;;;;///////////;////////////////////////////////////////;/////////////////``/`//////////////////``///////////////////````///////////////////////``////////////////////////////////////////////;/////`````////////////
;///////;;////;;;;;;;//``;/////;;;;;;;;;;/;/;/;/;/;;///////`////;;//;;;////////////////;//////////;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;//;////////////////////;/////;;///;;;//////////////////////////////;;;;;;;/;//;///;;;;;;////////////////////////////////////;//;;//;;;;;;;;;;;;;;////;//;;;;;;;/////////////////////////////////////////////////////////////////////````//////////////////``///////////////////`/```///////////////////////``//////////////////////`/////////////////////;////////``/////////////
;///////`;;////;;;;;;//``/;/////;;;;;;;;;;;;;;;/;;;;//////////////;///;;/;;;//////////////;//;//;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////////;;/;;/////////////;;////////////;//;//;;;;;/;;//////;;;;;;////////////////////////////////////;;;;;;;;;;;;;;;;;;;;///////;;;;;;;;//////////////////////////////////////////////``//`///////////////`````//////////////////``//////////////////////`//////////////////////////`/////////////////////```////////////////////////////```//////////////
;;//////``;/////;;;;;;//``///////;;;;;;;;/;;;;/;;//;///////////////;/;/;;;;;;;;//////////////;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////`//////////////////;;/;;/////;////;;;;/;;////////////////;;/;;/////////;;;;;;/////////////////////////////////////;;;;;;@;;;;;;;;;;/;;;;;;/;;;;;;;;;////////////////////////////////////////////``/////////////////`/`````//////////////``//``//////////////////////``/////////////////////////////////////////////////`/`//////////////////;/////`//`////////////////
;;;/////`//;/////;;;;;//```;///`//;;;;;;;;;;;/;;;/;;;;/;///////////;;//;;;;;;;;;;;;;;;;////;//;/;``````//;;;;;;;;;;;;;;;;;;;/;;;;/;///////////////////////////////;/;/;//////;;;/;;;;;;;;;//;//////////;;;////////////////;;/////////////////////////////////////;;;;;@;;;;;;;;;;;/;;/;;;;;;;;;;//////////////////////////////////////////``///////////////////``````//////////////////```///////////////////////``////////////////////////////////////////////////`//`/////////////////////////////////////////////
;;;;;/////`//////;;;;;;///``//////;;;;;;;;;;;;;;////;;/;//////`//////;;;;;;;;;;;;;;;;;;///;////```````/////;;;;;;;;;;;;;;;;;//;;/////////////////////////////////;;;;/;/;/;/;/;/////;;;;;;;/;/;/////////////`//////////////;;///////////;/////////////////////////;;;@@;;;;;;;;;/;////////`/////;;///////////////////////////////////////`/``/////////////////`````/////////////////`/``////////////////////``/`///////////////////;/////////////////////////////////////////////////////////////////////////;/;////
;;;;;;/////``/////;;;;;;//``///////@;;;;;;;;;;;;;;;;;;;;///////`//////;;;;;;;;;;;;;;;;;//////`````````///////;;;;;;;;;;;;;;/;;;;;;///////////////////`///////////;;//;/;;;;//////////;//;;/;;;;/;///////////`/////////////;;;////////////;//;/////////////////////;;;;;;;;@@;;////////`/`````/////;///////////////////////////////``/`````/``/`////////////`//```////////////////////``////////////////////```/////////////////;/////;///////////////////;//////`////////////////////////////`//////////////;///////
;;;;;;;//////`//`/;;;;;;;/```///////;;;;;;;;;;;;/;//;/;//////////////////;;;;;;;;;;;/;//////```````````////////;;;;;;;;;;;;;;;;////////;/////////``/`///////////``///////;;;///////////;/;/;;/;;;/////////////`//////////;;;;;////////;;///;///////////////////////;;;;//;;;///////````````````///////////////////////////////`///``````/////////////////////``/////////////////////``///////////////////``//////////////////////;////////////////////////////////////////////////////////////////////////;/////////
;;;;;;;;;//////```/;;;;;;///`///////;@;;;;;;;;;;;;;;/;;;;;/////////////;;;;;;;;;;;;/;;//////`````````````///////;;;;;;;;;;;;;;;;;/;/;;/;;;;;;;/////////////////////////////;;///;///////;////;;;;/////////////``//`///////;/;;/////;////////////////////////////////;;;;//////////////////`````//////;/;///////////////////////`//``/``////////////////////```///////////////////////////////////////////`//``/////////////////////////////////////////////////////////////////////;;///////////////////////////////
;;;;;;;;;;//////``//;;;;;;//``/////`/;@;;;;;;;;;;;;/;/;;///////////////;;;;/////////////////``///```````//////`/``;;;@;;;;;;@@;;;;/;;;;;;;;;;//`/////////////`/////////////////;;/;//////////;;;/////////////`/```/////////;;;;/////////////////////////////////////;;;///////////////////////////////;;;;;//////////////////```//`/`/////////;///////////``/////////////////////`//////////////////`/`///```/////////////////;/;////////////;///////////////////////////////////;//////////////;///////////////////
;;;;;;;;;;;////```//;;;;;;;//``///////;;;;;;;;;;;;;;;;;;;;////////////;/;;//////////////////////`````````//////````/`;;@@@;;;;;/;;;;;/;;;;/``//////////////////////``/////////;;;/////////;///;///////////////```/``////////;;;//////////////////////////////////////;;/;//////////////////////////////;;;;;///`////;///////``///////////////;////////////////////////////////`/`/////////////;/////////```///////////////////;//////////;///////////////////////////////////;//;/////////////;;;///////;///////////
;;;;;;;;;;;;;////```/;;;;;;;//`/;/``///;;;;;@;;;;;;;/;/;;;/;/;//////////////////////////////////////``/////////```/////@;@;@;;;;;;;;;///````///////////////////////////////////;;;;;;;;;///;;///////////////////````/////////;;;;////////////////////////////////////;/////////////////////////////////;@;;;///`/////////////`//////////////;////////;//////////////////////////////////////;;/////////``////////////////;;;/;///////;;///////;///////////``////////////////;//;;////////////////;/////;////////////
/;;;;;;;;;;;;;;///```/;;;;;;///`/////`//;;;;;;;;;;;;/;/;;;;;;/////////////////////////;/////////////;;//////////`/////``;@@@;;;;;;;////````/////////////////////`/////////////////////;;;;;///////////////////////////////////;;;///////////`//////////////////////////`//////////```///////////////////;;@@;/////////////////////////////;//////////////////////////////////////////////////////////``/////////////////////////////;///////;//;;;;//////`/`//////////////////;///;/////////;;;/////////////////////
//;;;/;;;;;;;;;////```/;;;;;;//``///```//;;;;;;;;;;;;;;;;;;;////////////////////////;////////////////////////`````/////``;;@@;;;;;;////``////////////////////////////////////////;/////;;;;;/////////////////////////`/////////;;//////////////////////////////////`/////`/`/////````////////////////////;;;@;/////////////////////////////////////`//////////////////////////////////////////////////////////////////;;//////;;///////////////////////```/////////////////;;;/;//////////;;;;;;;//;////////////////
///;;;;;;;;;;;;;;////``;;;;;;;//``//```///;;;;;;;;;;;;;;;;;;//;////////////////////////////////////////////``/```/`/////``/@;;;;;;;///``////////////////````````/////////////////;;/////;/;;///////////////////////////`////////;;///////////////////////////////////////////////````////;///////////////;;;;;///////;;//////////////////////////////////////////;//////////////////////;////////////////////////////////////////////;//////////////;/////////////////////;////////////////;;////;;////////////;;///
///;;;;;;;;;;;;;;;//////;;;;;;//``////``///;@;;;;;;;;;;;;;;;;/;////////////////////;;////////////////`///////////``///////`;;;;;;;;///``/////////////////`````////////////;;/////;;;//;/;;;;//////////////////////////`//////////;;//////////////////////////////////////////////////////////////////////;;;;/////////;;///////////////////////////////////////;;///////////////////////////////////////////////////;///////////////////////;;;;;///;/`//////////////////////////////////////////;/////////////;;;//
///`;;;;;;;;;;;;;;;////`/;;;;;;//``;///`/////;;;;;;;;;;;;;;;;;;;//////////////////;;////////////////////////////////////////;;;;;;;////////////////////////`/////////;////////////;;;//;;;;//////////////////////////////////////;;///////////////////////////////////////////////////////////////////////;;///////////////////////////;/////////////////////////////////////////////;;////////////////////////////////////////////////////;;;;;;////////;/////////////////////////////////////////////////////;/;;/
////`;;;;;;;;;/;/;;///////;;;;;;//`////``/////;;;;;;;;;;;;;;;;;;;/////////////;///;;//////////////////////````//////`////////;;;;;;;//////////////////////////////////;///////////;;;;;;;//`////////////////////////////`/////////;;;///////////////////////////`/////////////////////////////////////////;;////////////////////////;//////////////////////////////////////////////////////////////////////////////////////``////////////;;;;;;;;;///////////////////////////////////;///////////////////////////;;;
;/////;;;;;;;;;///;//;;////;;;;;;///;//```////;@;;;;;;;;;;;;;;;;;;;////////////;;/;;/////////////////////////````////`////////;;;;;;//`////////////////////////////////;///////////@;;;//////`/////////////////////////////////////;;/////////////////////////////////////////////////////////////////////;///////`////////////////////////////;;;;//////////////////////////////////////////////////////////;;//////////////////////////;;;;;/////////////////////////////////////;;;;;////////;;;//////////;;;;;//
;;////`@;;;;;;;;///;;;/;;;//;;;;;;/``////``;;//;@;;;;;;;;;;;;;;;;;;;//;//////////;/;///////////////////;//////////////``//////;;;;;;//`/////`//////////////////////////;;///////;//;;;;////````/////////////////////////``//////////;///////////////////////////////////////////////////////////////////////////////////////////////////////////;//////////;//////////;/////////////////////////////////////;;////////////////;;;//////`/;;/////////////////////////;////////////;;;;;;;;;/////;;;;///////;;;;;;;;;/
;;;/////;;;;;;;;////;;;;;/////;;;;//////////;;///@@;;;;;;;;;;;;;;;;;;;;;;;///////;;/////////;;/////////;///////////////``//////;;;;;//`//////`//////////////////////;//;;;;;;;;;;;//;//`////`/`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////;/////////////;/////;////;////////////////////////////////////////////////////////////////;//`///////////////////;/////////////////////////////////////////////////;;;;;;;;;;;///////;;;;;;;;
;@;/////`;;;;;;;;;;///;;;/;////;;;;/``///////;////;@@;;;;;;;;;;;;;;;;;//;/////////;////////;;//////////;///////////////```/////;;;;;/``//`////////////////////;;/////;;/;;/;/;;;;/////`````///////`/////////////////////////////////////////////////////;////////////////////////////////////////////////////////////;;;;;;/////;////////////////////////////////;;///////////////////////////////////////;/////////////////////`/////////////////////////////////////``////////////////////;;;;;;;;;;;;;//////;;;;;
;;@;;///``;;;;;;;;;;///;;;;//////;;//``////``/;////;@@@;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////;;/////////;///////`/////;;;//``//````////////////////////////////;;///;;;;////``````////``////////////////////////////////////;/////////////////;;;//////////////////////////////////////////////////////////;;;;;;;;;;//////////////////////////////////;///////;////////////;//;////////////;//////////////////////////////////////////////////////////////`////////////////////////;;;;;;;;;;;;;;;;////;;
/;;@;////``;;;;;;;;;////;;;/////``;;//`/////```////`/@@@@;;;;;;;;;;;;;;;;;;;;;;;////////////;;//////////;;///////;;////////`/////;;//``/```//////////////////////////////////;/;;;////```````////`//////////////////////////////////////////////////////;;;//////////////////////////////;////////////;///////////////;;;;;;;;;;;//;//;;///////////////////////////////////////////////;;///////////;//////////////////////////////////////////////////////////////////////;//////////////////////;;;;;;;;;;;;;/;;;/
/;;;;;///``/;;;;;/;////``;;;/////``///``////```///////;@@@@;;;;;;@;;;;;;;;;;;;;;;/////////////;///`//////;;//////;;//////////////;;//``///////////////////////////////////////;/;///////```````////////////////////////////////////////;///////////////;;;;//////////////////////////////////////////;////////////////;;;;;;;;;;;;;;;/;/;///////////////////////////////////////////////////////////;;;///////////////////////////////////////////////////////////////////;;;//////;;;;;///////////;;;;;;;;;;;;;;;;;
//;;@;;///``;;;;;;;;;///``/;;/////``///``///```/`///////@@@@;;;;;;;;;;;;;;;;;;;;;;//////////;////////////;;;;;/;//;///////////////;//``//////////////////////////////////////;;;;////////``````/////////////////////////////////////////;////;;////////;;;;;////////////////////////////;//`/////////;/////////////////;;;;;;;;;;;;;;;;;;;;;////;//;;;;;;////;;/;;/;/;//////////////////////////;////////////;;/////////////////////////////////////////////////;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@;;;;;;;;;;
///;;@;;////`/;;;;;@;////```;;;;///``//```///`````/;///;@@@@@@;;;;;;;;;;;;;;;;;;;;//////////;/;/////////;;;;;;;;;;////////////////;//``////////////////////////////////////;;;;;;/////////`````////////////////////``///////////////////;;;/;;;;/;;///;;;;;;;/////////////////////////////////////////////////////////;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;/;;;;;;;;;/;;;;;;///////////////;//;;/;;;;//////////////////////////////;;;///;;/////////////////////;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@;;;;;;;;;;;@@;@@@@@@@@@
////;@@;;///``/;;;;;@/////```/;;/////``/``////`````;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;;//////////;;;//////;/////;;;;/;/////////////////;//`//////////////////////////////////////;;;;;/////////`````/////////////////```````//////////////////;;;;;;;;;;;;;;;;;;;;;////////////////////////////////////////////////////;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////;;///;;;;;////////////////////;;/;;///;/;;;;;;;;;;;;//;//////////;/;;//;;;;;;;;;;;;;;;;;;;@;;@@@@@@;;;;;@;;;;;;;;;;;@@@@@@@@@@
/////;@;;;/////;;;;;;;////`/``/;//////`````///`````/;;;;/@@@@@@@@;;;;;;;;;;;;;;;;////////////;//////////;//;//////////////////////;;/`////////////////////////////////////;;;;;;;/////////````////;;;;////////``````````////////////////;;;;;;;;;;;;;;;;;;;;///;////////////////////////////;/;/////;//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;//////////////////;;;;;;;;;;;;;;;;;;;;;///////////;;;;;;;;;;;;;@;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@
//`//;@@;;;///``;;;;;;;/////```/;;/////`````////````;;;/;@@@@@@@;@;;;;;;;;;;;;;;;///////////;;;;////////////////;;////////////////;;/`///////////////////;;///////////;;/;;;;;;;;/////////```//////;;;;///////```````````///////////////;/;;;;;;;;;;;;;;;;;;////////////////////////////////;;;;;///;//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@
///`//;@;;;/////`;;/;;;;/;////``/;;////``````///````/;;;;;@@@@@@;;;;@;;;;;;;;;;;;///////////;;;;////////;/;;;;;;//////;////////``//;//////;;;///////////;;;/;;;//////;///;;;;;;;//////////////////////;;///////``````````//////////////////////////////;;;;;///////////////////////////////;;;;;;///;/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@;;;
;//////;@;;;;///`/;;;;;;@;;////``;@;/////````///`````;;;;;;;@@@@@;;;;@@;;;;;;;;;;///////////;/;;/////////;/;/;;;;///////////////`//;////////;;;/////////;;;;;/;;/////////////;;;/////////////////;;;/;//;///////``````````///////////`/////`/////////////;;;///////////////////////////////;;;;;////;/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;@;;;;;;;;;;////;;///;//;;;;;;;@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;///
;//`///;;;;;;;////;;;;;;;@;;////``/@;////////`/`//```/;;;;;;;;;;@@;;;;;@@@;;;;;;///////////;;;;/;;//////////;/;//////////;//////////////////;;;;////;///;//;//;/////////////////////////;//////;;//////;/;//////``````````///////////```````````/////////////////////////;////////////////;;;;;////;;;/////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////;///;;;;;;;;;;;@;@;;;;;;@;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;/;//////
;;///`//;@;;;;///`/;;;;;;;@;//////``;;////////`///////;;;;;;;;;;;;;;;;;;;@@@@@;;/////////;;;;;;///;////////////////;//////;////`///////////////;;////;;;;;;/////////////////////////;//;////;//````````/;////////``````````//////////````````/////////////////////////;;;/////////////////;;;;/////;;;////////;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;@@@;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////
/;;//`///;@;;;//////;;;;;;;@;//////``;@////////`///////;;;/;;;;;;;;@;;/;;;;@@@@@////////;;;;;;/;;//////////////////////////;//////;;////;//;/;/;;;////;;;///////////////////////////;;/;;/////////```````;////////`````````///////////`````////////////////////////////////;;///;;;;;;/////;;//////;@;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////
//;;//////;;;;;///`//;;;;;;;@;//////``/;;//////`///;///;;///;;;;;;;;;;///;;;@@@;/////;//;;;;;//////////////////////////////////////;////;/;;////;;;///;;;;///;;/////////////////////;;/;;//////////```````;///////`````````///////////`````///////////////////////////////;;;/;;;;;;;;;;;;;;;/////;;@;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;////////;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////
//////////;@;;;;;//``//;;;;;;@;///;///`;;;;////``///;;;;;////;;;;;;;;;;////;;@@;////;///;;;/;;;/;////;////////////////////;///////;;;//;;;;;///;/;;;;;;/;;;/;;;/////////////////////;;;;////////////``````/////////`````````//////////`````///////////////;/`/////////////////;;;;;;;;;;/;;;;;;///;;@;///////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;/////////////////////////////////////////////////;;;;;;;;;;;;;;;/;;;;;/;;;;//;////////////////////;;;/;;;;;;;;;;;;;;;;;;;;///;;///////////////////
///////``//;@;;;////`//;;;;;;@@;;;;;////;;;;////``/;;;;@;;;///;;;/;;;;;/////;;@;/////;/;;;;/;;/////////;/;;////;/;/////////;;/////;;;;/;;;;;/;/;/;;;;;;;;;;/;;/////////////;////;///;;;///////////////`````////////`/```````//////////``````///////////////;/``````///////////;;;;//////////;/;;;;;@@;//;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;////////////////////////////////////////////////////////////////////////////////////////////////////;;//////;;;;;;;;;;;;;;////////////////////////////
////////`///;;;;;;//////;;;;;;@@;;;;//;/;;;;;;///``/;;;@;;///////;/;;;;;////;;;;;;/;;//;;;/;//;//////;//;;;;;;;;;////////;;;//////;;;;//`//;;;///;;;;;;;;;/;;;;///////////;/////;///;;//////////``//////````///////`````````//////////``/////////////////;/````````/////////;;;;;;///`///////;;;;;;;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;///////////////////////////////////////////////////////////////////////////////////////////////////;////////;/;;;;;;;;;;;;;;;////////////////////////////
/////////`///;;;;;;/////;;;/;;;@@;;;;;;;;;;;;/////```;;;;;;//////////;;;;/////;;;;//;/;/;;/;///////;/;;;;;;;;;;/;;/;////;;;;;////```````````/;/;///;;;;;;/;;;//////////;;;;;;/;;///;//////////`````//////````///////`````````/////////```/////////////////`````````////////;;/;/////////`/////;;/;;@;;///////;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;//;;///;////////////////`/////////////////////////////////////////////////////////////////////////////////////////////;;;/;/;;;;;;;;////////////////////////////////
/////////```/;;//;;;/////;;/;;;;@@;;;;;;;;;;;;////````;;;;;;//////;/;;;;;/////;;;///;;;;;;;///////;/;/;;//;;;;;;;;/;;///;;;;/``/``//////////`/;;;;;;;;;;;/;/;;/////////;;;;;;/;;;;////////////////////////```///////```/`````//////////``/////////////////````````/``////;;;;;//////```//////`///;/;;;///////;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////`//////////////////////////////////////////////////////////////////////////////////////////////////;////////////////;////////////////////////
//////////``//;;//;;;////;;;;;;;;@@;;;;;;;;;;;;////````;/;;;;//////////;;;/////;;//;;;/;;///////;;;;;;//////;;;/;;//;//;;/````//```////////////;;;;;;;;;;;;;;;//////;;;;;;;;/;/;;//////////////////////////```///////```````///////////`/////////////////```````////````;;;;/////`///`////``/`//////;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////;////////////////////////////;////////////////////////
///////////``//;///;;;////;;;/;;;;@@;;;;;;;;;;;;;///```/;/;;;;/;/////////;;///;;;//;//;/;///////;;;;/;///////;;/;;;/;///````````````////////////;;;;;;;;;;;/;;/////;;;;;;/;;;/;;////////////////////////////``///////``````////////////``////////////////``````/////`////;;/////```````````//`///////;//;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////////`////////////////////////////////////////////////////////////////////////////////////////////;////////////////////////////////////////////////
///////////``//;;///;;;;///;;;;;;;;@;;;;;;;;;;;;;;///````///;;;;////////;;;;;//;;;/;;;;;;///////;;;;///;/////;;/;/;///`````````/`/``/////`///////;;;;;;;;;//;;////;;/;;;;/;;;/;//////////////////////////////``///////``````///////////`////////////////```````/////``;/;;/////`````````//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////;//////////////////////////
/////////////`//;;///;;;////;;;/;;;;@;;;;;;;;;;;;;;///````///;@;;////////;;;///;;;/;;;;;;///;/;/;;////////////;;;;;;/`````````///```////`/////////;;;;///;;/;//;;;;;;;;;;;;;;;;////////////////////////////////`;/////``````///////////`/////////////////``````////////;;//`//`/```````//////////`////;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////////////`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////;;////;;;////;;;;;;;@@;;;;;;;;;;;;;;;///````/;;;;;//////;/;;;///;;;/;;;;///;/;;;;//////////////;;;;/```````///``///`////////```/////;;/////;///;;/;;;;;;;;;;;;/////////;/;;;;/////////////////`//;//;//````//////////////////////////////`````///////;;//////`/`////////////``///``////;;;;;;;;;;;;;;;;;;;;;;;;///////////`/``/////////////////////`///////////////////////////////////////////////////////////////////////////////////////////////////;//////////////////////////////////////`/////
`////////////////;/////;;//////;/;/;;@;;;/;;;;;;;;;;;////`````/;;;;///////;/;;//;;;//;;//;;;;;;//////////;//;///;/``````````///////```/////``````////////;///;;;;;;;;;;;;;;;;;///////;/////;;/////////////////////;;;///```/////////////////////////////`/```/////////;/////`/``/////;/////`/`////////;;;;;;;;;;;;;;;;;;;;@@///////////////```////////////////////////////////////////////////////////////////////////////////////////////////////;/////////////////;;;;;//////////////;;//`////////////////////////
````//////////////;/////;;/;/////////;@;;///;;;;;;;;;;;////````/;;;;//////;/;;;//;;;;;;;;/;;;;//;//////;;;;//////`````````/////////`////////``````//`//;/;///;;;;;;;;;;;;;;;;////////////;;;;;;;//////////////////////////////////////////////////////////``//////`;;/////`//////;//;//////////////;;/;;;@@@@@@@;@@;@@@@@;/////////////////``///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////;//;////////////////////////////////////////
``/``/////////////;//////;;///////////;@;///;;;;;;;;;;;;/////```/;;;;//`/////;;;;;;;;//////;;///;;///////;//;;;/```````````////////`////////``/````/////;/////;;;;;;;;;;;;;;;////////////////;;;;/////////////////````///////////////////////////////////```///////;;;//////`/////////////`/`///`//;/;;;;;;@;;;;;;;;;;;;//```///////////````///////////////////////////`/////////////////////////////////////////////////////////////////////////////////////////`///////;;;////////////////////////////////////////
/`/```/`///////////;//////;;///////////;;;///;;;/;;;;;;;/////````/;;;;//`////;;;;;//``/`````///////////;;;;/;;/````````````````/////``////////``````//////;//;;;;;;;;;;;;;;;;/////////////////;;;;;////////////////````////////////////////////////////```//////;;;//;/`/`//``//``/////////`/`//////;;;;/;;;;;;;;;///;/`/````/////////```///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////``///////;;;//////////```///////////////////////////
``````````//////////////`//;;///////////;;////;;/;;;;;;;;;;////////;;;;///////;//`//`/`///////;/;///;/;;;;;;;;/`````````///```//////``////////``````//`///;;;;;;;;;;;;;;;;;;;//////////``///////;;;;//////////////////`///////////////////////////;;//`//////////;;;;//;/`````````//////`/````/////;;;;;///;//////////`````///////////``/`////////////////////////`////////////////////////////////////////////////////////////////////////////////////////////`///////////;//////////////////////////////;;;///////
```````````/////////;///``//;///////////;;////;;;/;;;;;;;;//////////;;;;///////////////////////;;;/;;;;;;;;;;//`````````///`////////////////;//``/```//////;;;;;;;;;;;;;;;;;;///////////```/////;;;;;/////////////////////////////////////////////;///`////;;;;;//////////``/````/////```````//////;;;;//////////////````````////////```/`/////////////////////`//////////////////////////////////////////////////////////////////////////``/////////////////``///////////;////`////////////////////////////////////
///``````/``///``////;///////;;//////////;;////;;;/;;;;;;;//;;;//////;;;////////////////////////;;;;;;;;;;;;;/````````````////////////`///////;///`/////////;;;;;;;;;;;;;;;;;///////////```///////;;;;///////////////////////////////////////////;;;////;/;;;;;;/////////```````/`////```````//////;;;/////////////``````````////////````////////////////////`////`//////////////////////////////////////////////////////////////////////``/////////////////`//////////////////``/`/////////////////////////////////
/////`````````//``///;///////;;;////`/////;;////;;;;;;;;;;;/;;///;////;;;////////////////////////;;;;;;;/;;;;/`/```````````////////////////////;;///;;///////;;;;;;;;;;;;;@;///////////````////////;;;;/////////////////////////////////////;;;;;;;;//;;;;;;;/////////``/````````/////`````//`////;;;;//////////////`````````////////````////////////////////`/////////////////////////////////////////////////////////////////////////``/////////////////////////////////////////;///////////////////////////////;;
///////````````/```///;///////;;///`/`////;;/////;;;;;;;;;;;/;;;;////;/;//////////////////////////;/;///;;;;///````````````////////////////////////;;;////////;;;;;;;;;;;;@///////////`````/////`///;;;;//////////////////////;////////;;;;;;;;;;;;;//;;;;;//////`/`/``````/```////`//````///////;;;;/////////////```````````///////````/`///////////////////////////////////////////////////////////////////////////////////////////```///////////////////`///////////////``////;;;;///////////////////////////;;//
////////````````/````////////;;;;///```////;//////;//;;;;;;;;////////////////////////////////////////////;;;////``````````//////////`///////////////;/////////;;;;;;;;;@@;;///////////`````//////`///;;;;/////////////////////;//////;/;;;;;;;;;;;;;/;;;/////////``/``````````///////`/```//////;;;;;////////////``````````/////////`/`/////////////////////////////////////////////////////////////////////////`//////////////////````/////////;;////;;;;;;//////////////``////;;;;;;////////////////////////;;;;;/
////////``````````````//;;;;;;;;;;///``/;/;;;/////;;//;;;;;;;//////////////////////////////////////////////;////```/`/``////////////////`//////////////////////;;;;;;;;;@@////////////`````///////`///;;;;////////////////////;//////;;;;;;;;;;;;;;/;;;;/////////`//`````````````;;;/```///////;;;;;////////////````````````//////////////////////////////////////////////////////////////////////////////////////////////////;/////`//`///////;/;;;/;;;/;;;;;;;;//////////////;/;;;;;;;///////////;;///////;;;;;;;;
////////``````````````///;;;;;;;;;;//```/;;;;//////;/;/;/;;;;;////////////////////////////////////////////////////`/////////////////////////////;///////////////;;;;;@@@@;/////////////////////////////;;;/////////////////////;;///;;;;;;;;;;;;;;;;/;;//////////////```````````;;//```///////;@;;;;/////`////`/``````````//////////////////////////////////////////////////////////////////////////////////////``/////////////////`//`//////;////;;;;;;;;;;;;;;;;;////////////;;;;;;;;;;;///////////////;;;;;;;;;;;
////////````````````````/;;;;;@;;;;;///``/;;;;//////;/;/;/;;;;//////////////////`////////////////////////////////////////////;/////////////////////;;/;/``/;////;;;;@;@@@//////////////////////////////;;;;////////;;/////;//;;;;;;;;;;;;;;;;;;;;;;;;;;;///////````````///```///;;;;//```////;;;@;;`/////`////```````````//////////////////////////////////////////////////////////////////////////////////////`////////////////;///`///////;;//;;;;/;;/;;;;;;;;;;;;;;////////;;;;;;;;;;;;//;;;//////////;;;;;;;;;;;
///////////`````````````/`@@@@@@@@@;;///`//;;;;/////;//;;;;;;;///////////////////``///////////////////////;;///////////////////////////////////////;;///```/;////;@@@@@@;//////////////////////////////;/;;;////////;////////;;;;;;;;;;/;;;;;;;;;;;///////////`/`/`////////////////;//`//////;;;;;`///////////``````````/`///////////////////////////////////////////////////////////////////////////////////`//////////////////////////////;/;/;/;/;;;;;;;;;;;;;;;;;;//;//////;;;;;;;;;;;//;//////;;;/;;;;;;;;;;;;;
////////////`````````````/`@@@@@@@@@;////`/;;;;/////;;/;;;;;;;;//////////////////`////////////////////////;;;//////////////////////////////////////////```///;///;@@@@@@////////////////////////////////;;;;////////;///////;;;;;;;;/;;;;;;;;;;;;////////////`/```/////////////////;/``/////;;;;;//`/////`////`````````/////////////////////////////////////////////////////;;////////////////////////////////////////////////////`/////////;;;;/;/;;//;;;;;;;;;;;;/;;;;;;/;////;;;;;;;;;/;;;///////;;;;;;;;;;;;;;;;
///////////////```````````//@@@@@@@@;;///``/;;;;//////;/;;;;;;;;////////////////`/////////////////////////;;;///////////////////////////////////`/////////////////@@@@@;////////////////////////////////;;;;;//////;;;//////;;;;;;;;;;;;;;/;;;;;//;//////;//`````````////`///////////////;;;;;;;@/``///////`////``````////////////////////////////////////////////////////;/////////////////////////////////`////////////////`/`//`////////;;;;;;///;;;;//;;;;;;;;;;;;;;///;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///////////////````````````/@@@@@@@@@;////``/;;;;/////;/;;;;;;;//////////////////`/////////////`///;//////;;;/////////////////////////////////////////////////////@@@@@//////////////////////////////////;;;;;//;/;;;;;///;;;;;;;/;;;;;;/;;;@;;//////////`````/```/``///`/`////````/`//;///;;;;;;;;``///////////````//////////////////////////////////////////////;//;/;////;///////////////`////////;///`/``////////////////`///`///////;;/;/////;;;;/;;;;;;;;;;;;;;;;;/;/;/;/;/;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
////////////////`/`````````//@;;;;;;@@;;///``;;;;////////;;;;;;/////////////////`//////;//////`////////`/;;;;;/////////////////////////////;//;///////////////////;@@@;///////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;@;@;////////////`///`````/`````````/```````//;;;;;;;;@;;;;/`//////////```////////////////////////////////////////////;;/;;;;//////``////////////``////////;///`/`///////////////////```//////;;//////;;;;//;//;;;;;;;;;;;;;;;;;;;;//;;;/;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;@@
/////`///////////``````````///;;;;;;;;;;////``;;;;/////////;////////////////////////////;/////////////``/;;;;/;////////////////////////////;////////;;////////////;@@@////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;//////;///``````///```//`/``````/```/``/////;;;;;@@;;;;;////////////////////////////////////////////////////////;;;;;;;///////```///////////``///////////////`////////////////``/////////;;/////;//;;;/;;/;//;;;;;;;;;/;;;;;;;;;///;////;;;/;;;//;;;;;/;;//////////////
////////```////////``````````//;;;;;;;;;;///```;;;/////////;;/;/////////`//////////////;;;;;;/;;//////`////;;;/////////////////////////////;;/;/////;;////////////;;;;////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;/////;;;;;/////////``/`````///```/````/````/``//////;;;;;;;;@@;;;;;;;/////////////////////////////////////////////////;/;;;;;;;;///////```///////////`/`//////////////``///////////////////////;///;/////;/;;/;//;;//;/;;;;;;;;/;;;;;;;;;;/;/;//;////;///;////;/;///////;;;;;/;/;/
///////////```/////````````````///;;;;;;;;////`/;;;/////////;;///////////////////////////////;;///////``////;;/////////////////////////////;;;;//////;//;/;///////;;;///////////;/;;;;;;/;/////////////////;;;;;;;;;;;;;;;;;;;;;;/////;;;;;//////////```````````//``````/``/`/////////;;;;;;;@@;;;;;@;;///////////////////////////////////;;///////////;;;;;;;;;///////////////////////```/////////////`//////////////////`////;;;;;;/;;///;;;;;/;;;;;;;;;/;;;;;;/;/;;;;;;;;///////;/////;//;//;//;;/;//;;;/;;;/;;;;
//////////////```////`````````/////;;;;;;;////``;;;////`/////;///////////////////////////////////////```///;;;;/////////////////////////;/;;;;;//////;/////;//////;;;/////////;;;;;;;;;;;;;;;////////////;/;;;;;;;;;;;;;;;;;;/;//////;;;;;/;///////////`/```/```///`//``//`///`//////;;;;;;;;@@;;///@;;;;;;/////////////////////////;////;;;////;;;;;;;;;;;;;;////////////////////////`//////////;////`//;///////////////`/`/////;/;;;;;;/;;;/;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;/////////;//;/;;;;/;/;/;//////;;;
///////////////````````````````////;/;;;;;;////``;;;///`///////;//////////////////`////;//////;/////`///////;;;/////////////////////`//////;;;;//////;/////;//////;;;///////;;;;;;;;;;;;;;;/;;;/;///////;;;;;;;;;;;;;;;;;/;;////////;;;;;;//////;;;/////``/`/`````/``/``//```/////////;;;;;;@;;;;;;;;@;;;;;;////////////////////////;;;;;;;;;/;;;;;;;;;;;;;/////////////////////////////////////////////;/;;/;///////////////////;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;/;;;//;/;///;///;/;;/;;;/;;//;////;;
///////////////////```````````///////;;;;;;;//`/`;;;///`///////;////////////////////`/;;;;;;///////``///////;;;/////////////////`//```////;;;;///////;/////;//////;;///////;;;;;;;//////```////;;;;////;;;;;@;;;;;;;;;;/;;;;///////;;;;;;///////;;;;/``/////````/`///```///`//////;/;;;;;;;;;;;;;;/;;;;;;;;;;/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////////////////////////`///////////;///////////;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;/;;;////;;;;//;///;;///;//;/;;;;;//;;;;
////////////////////////````//`///////;;;;;;;//```;;;/////;//////////////////////;///`/;;;;//////////////////;;////////////////////////////;/;///////;/////////////;//////;;/;;///`````````//;//;;;;;;;;;;;;@;;;;;;;//;;;;;///////;;;@@;;;///////;````///`//`/``/```````///`///`//;;;;;;;;;@@;;;;;/;;;;;;;;;;;/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;///``/////////``//////////////////////////////////////////;;////;/////;;/;;;///;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;////;//;/;;;;;;;;;;;;;;;
/////////////////////``````````///////;;;;;;////``/;;///`//;//////////////////////////``/////////////////////;@;;;///////////////////////;;/;;///////;/////////////;/////;//;///````````````//////;;;;;;;;;;@;;;;;;;//;;;;/////////;;;;;;//////////``/``/`////``//``//````/`//////;/;;;;@@;;;;//;;;;;;;;;;;;;;;/////////;/;;;;;;;;;;;;;;;;;;;;;;;;;//////`/////////////////////////////////////////`//;//;//;///;;////////;////;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;//;//;/;/;/;;;;;//;//;//;;;;;;/;;;;;
;////////////////////////////////////////;;;;///```;;;//`//;/////////////////////////////````////////////////;;;;;;//////////////////////;;//;///////;/////////////;///////////```````````````//;;;;;;;;;;;;@;;;/;;//;;;;/////////;;;;;;;/////`//////```///````/``//``///`;////////;;;;@;@;;;;;;/;;;/;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;;;;;;;;;;//////////////////////////////////////////////////////;;//;////////;////////;;;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;/;;;;;;/;//////;//;;;;;;;;;/;;;;;;;;///
;/;//////////////////////````////////;///;;;;;///``/;;//`////////////////////////////////////////////////////;;;;;;;/////////////////////;;/////////////;;;////////;;/;/;/////``````````````````////;;;;;;;@@;;;;////;;///////////;;@;;;;/////`////`````//////`````//`/``/;///`//;;;;;@@;;;;;;;;;////;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;@;@//////////////////////////////////////////////////////////;//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;/;/////////////////;;;;;;/;;/;/;
;;;;///////////////////////`///////////////;;;//`/``;;////////////////;//////////////////////////////;;//////;;;;;;;;;/////////////////;;;;;;///////;;;;;;/////////;;;/;;////`/````/////////``````/;;;;;;;@;;;;;////;;;;//////////;;;;;;//////`////```//``/``````///////``//////;;;;;;@;@;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;@;;;;/////////////////////////////////////////////////////////;;/////////////////;;/;;;;;;;;;;;;;;/;;;;;;;;;;;/;;;;//;;;/;/;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////
;;;;////////////////////////////////////;/;/;;;//```/;;//////////////////////////////////////////////;;//////;;;;;;;;;;///////////////;;;;;;;/;//////;;;;;;////////;;;///;///```///////////////``//;;;;;@@@;;;///;/;;;;///////////;;;;;;//////`//`////```````/`////////``//////;;;;;;@;@;@;;;;;;;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////////////////////////////////////////;//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;/;;//;//;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;///;//////;;;;;;;
;;;;;;//////////////////////`//////////;///;;;;///```;;;/////////////////////////////////////////////;;////;;;;;;;;;;;;//////////////;;;;;;;/;;///////;;;;/;///////;;;;/////////////////////////////;;;@@@;;;////;;;;;///////`////;;;;;///`//````////`/``/```/```//////////////;;;;;@@@@@;;;;;/;/;///;;;;;/;;;;;;;;;;;;;@@;@;;;;;;;;;;;////////``/////////////////////////////////////////////////////////////////;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;//;;;;;;;;;;;;;;;;;;/;;/////;/;///;;;;;;;;;;;//////////////
;;;;;;;//////////////////////////////////////;;;///``/;;////////////;;///;//////////////////////////;;;//;;;;;;;;;;;;;;;;///////////;;;;;;;;//;;////////;;;;///////;;;;;////////////////////////////;;@@@/;;/////;;////;//////////;;;;//////`///////``/``````````/`/`///////;/;;;;;@@@@;;;;;;;///;;;;;;;;;///@;;;;;;@@@;;;;;;//;/////;////////////////////////////////////////////////////////////////////;;/////;;;;;/;;;;;;;/;;;;;;;/;;;;;;;;;;;;;//;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;/;;//////;//;;/;//;/;;;;//;;/;
;;;;;;;;;;//////////////////////////``//////;/;;///```;;;/////////////;/////////////////////;////////////;;;;;;;;;;;;;;;;;;/////////;//;;;//////////;;//;;;;///////;;;;;;////////////////////////////@@@;;;;////;;;;///;/////////;;;;//////`////////`/````//`////`/////////;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;//////;@;@;;;;;;;;;/;;;/;////////////`////////////;///////////////////////////////////``////////////;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;
;;;;;;;;;;;/////////////////////////``//`//////;;//``/`;;;////////////;;/////////////////`````///```//```//;;;;;;;;;;;;;;;;////////////;;/;//;/////;/;//;;;;//////;;;;;;;////////////////////////////;@@;;///////;;//////////////;;;/////////////`/////```//`//`////`//////;;;;;;;@@@;;;;;@;;;;;;;;;;;;;;;//////////;;/////////////////////```////////////;;;//////;;/;;///;;;;////////////////```/////;;;;;/;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;/;;;;//;;;;;
;;;;;;;;;;/////////////////////////````//`````/////`````````/``````````````````/``////////////////////////////;;;;;;;;;;;;;;;////////;/;;;//;////;/;;;;///;;;/////;;;;;;//////////////////////////////@@;//////;/@;/////////////;;;;;////////////////`//`//``//`//////////;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;////////////////////////////////`//////////;///;;;/////////////////////;////////////````//////;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;/;;;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////;/;;;//////////
;;;;;;;;;;;;;;;////////////////////````///``///////////`////`////////////////////////////////////////;//////////;;;;@;;;;;;;/;//////;/;;;;//////;;//;/;/;;;;;/////;;;;;//////////////////////////////;@;;/////;;;///;///////////;;/;;///////////``/```/`````//``/`///////;;;;;;;@@@;;;;;;;@@;;;;;;;;;;;;;/;//////////////////////////////``//////////////;;;;/////////`/```//`////////////////````////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;//;;;;///;;;;;;;;;;;;;;;;;/;//////////////;/;;;////;;;
@;;;;;;;;;;;;;;;//////////////////`/////////////////////////////////////////;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;@;;;;;;;;;////////;;;;;/////;//;/;;;//;;;;;;/;/;@;;;/;/////////////////////////////@;;/////;;;//////`////////;;;;/;//`//``///``//`/`/`//`//``////////;;;@;;;@@@;@;@;;;;@@;;@;;;;;;@;;;//////////////////////////////`///////////;/////;;//////```////```/////`/////////////``///////////;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;/////;;;;;;/;;;;;;;/;;;;//;//;//////;//////////;;/////////
@@;;;;;;;;;;;;;;;///////////////////////;;;;;;;;;;;//;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;/;;;;;;;;;;;;/;;;@@;;;;;;;;///////;;;;;///;;;//;;;;;;/;;;///;;;@@;;/;/////////////////////////////@;/////;;;//////////////;;;;//////////`````///````/////``////////;;;;;;@@;@;;@;;;;;@@@@@@@;;;;@;;;;;;;/;/////////////////////////////////////////////////////////``````///`/////////////`/////////////;;;;;;;;;;;;;;/;;/;;;;;;;;;;;;;;;;;;;;;;;;/;//////;;/;;;;;;;;;//;;;;;///;/;/;;///;/;////;;//;////;///;/;
;@@;;;;;;;;;;;;;;;//////////////////;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////;;;;;;;;;;@@;;;;;;;;//////;;;;;///;;;;;;/;/;///;;///;;@@@;;;/////////////////////////////;;;////;;//////``///`////;;;;/;//////`///```````/`/////`//`/;;;;//;;;;;@@@;;//////////;;@@;;;@@@;;;;;;/////////////////////////////////////////////////////////////````//`//////////////`````////`///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;////////;;;;;;;;;;;/;//;//;;//;///;;//;;/;;////;///;;//;/;;/
;;;@;;;;;;;;;;;;;;/////////////;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;//////````/````````````````````````////;//;//;;;;;;@@@@;;;;;;;;;////;;/;//////;;//;;////;;;///;;@@@@;;/////////////////////////////;;//;//;;///////`//////;/;@;;;;////////``````///`/////`/////;;;///;;;;;@@;;///////////`/`;@@@@;;;;;;;//////////////////////////////////////////////////////////////////`///////////////`````/``//``///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;//;//////;;;;;;;;;;;;;;;/;/;;;/;;///;;//;;/;/;/;;//////;/;//;;;
;;;@@@;;;;;;;;;;;;;;;;/////;/;;;;;;;;;;;//```````````````````````````````````````////````///``````````````````/;;;;;;;@@@@;;;;;;;;;/////;;/;;;//////////;/;;////;@@@@@;;/////////////////////////////;;/;;/;;///`///`/`//;////;@;//;;//`///``````/`````///`//////;;//;;;;;;@@;////////////`/////;@;;;;;;;;;////`/``///////////////////////////////////////////////////////////////`/`//////``````````````///////;;@;@@;;;;;;;;;;;;;;;;;;;;;;/;;;;;//;;;;;////;;;;;;;;;;////;;;/;;;////////;/;/;;//;;;;//;/;;;;;/;//;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/```````````````//////////////////////////////////////////////````````````````/;@@@;;;;;;;;;////;;/;;;;;/;;;;;;;;/;/;//;;@@@@@;;/////////////////////////////;///;;;;;////////`///////;;;//;///////```/````````///`/////;;;;/;/;;;@@;///////////////`/////;;;;/;;;///////``////``//////////////////////////////////////////////////////////`///////```````````````///////;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////;//;;;;;;;;;;;;//;/;;/;;;//////;///;;/;/;;;;//;/;;;///;/;;////
/;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////````////////////////////////////////////////;;;/////////////////////`///``````````//;;;;;//;/;;;;/;;;;////;;;;/;/;;;@@@@@@;;/////////////////////////////;/;;/;;///`///`//`/////;/;;;;/;///////`/`///``````/`/////;//;////;;;;@;//////////////////`/////;/;;;//////////``````////////;/////////////////////////////////////////////////////////`````/````````/////////;@;;;;;;;;;;;;;/;/;;;;;;;;;;/;;;;/;//;;;;;;;;;;;;;;;;/;////;;;//;;/;/;;//;;;;;;;;;//;/;;;///;;;;;;
;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////;;;;//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////`/```````/``/;;///;;;;;;;;;;/;;;;;/;/;;;;@@@@@;@;;////////////////////////////;///;;;//////`//```///;;/;;////////```/`/````/`````/////;;////;;;;;;@;/////````/////////////`////;;;/////`///```````////////////////////////////////////////////////////////////`///````````````````//////////;;;;;;;;/;;;;;/;/;;;;;//;;/;/;;;;;/;;;;;;;;;;;;;;;;//////;/;;/;/;//;/;;//;;;;;;;;;//////;/;;;;;;;
;;;;;;;;@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;;;;;;;;;;;;;;;;///////;;;;;;@@@;;///;;;;;;;;;;;;;;;;;;;;;;////////////////```;;;;;;;;;;;;;;/;;;;;/;;;;;@@@;;;;;;;////////////////////////////;//;;;/;`////`/``/`///;/;;;///////````/`///////```/```////////;;;;;@;////`//////```````````/////////`//`//`````````//////////////////////;/////////////////////////////////////``//````````/````````///////////;;;;;;;;;;//;;;/;;;;;;;;;;;;;;;;/;;;;;;;;/;;;;;////////;;;;;;//;//;;;/;;;;;;;;;;//;////;;;;;/;;/
;;;;;;;;;;;@@@@;;;;;;;;;;;;;;;;;;;;;;;;;///////////////````````/```/////////////////////////////////;;;;;;;;;;;;;;;;;;;////////////`////;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;///////////////////////////;;//;;;//`/////```///////;;;///////`/```///////`/`/////`///////;;;;;;///////////```````````````/`//```/////``````````////////////////////;//////////////////////////////////////////``////`/````````/////////////;;;;;;;;;;;;/;;/;;;;;;;;;;;;;;;//;;;/;;;;/;;;/;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;//;//;;;;;;/
///;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;;;;///////////////////////`/``///////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;///////;;;;;;;;;;;;;;;;;;;;;;;@;@;;;;;;;;;//////////////////////////;;;;/;;///////`///////////;;;//////`/```/`//////```/`////////;;;;;;;@;//////////////````````````````/``/////````````//////////////////////;//////////////////////////////////////////`///////```/```/////////////;;;;;;;;;;/;/;;;;;;;;;;;;;;;;;;;;//////;;/;//;/;////;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;;;//
////////////////;;;;;;;;;;;;;;;;;/////////////////////////////``/``////////////////////////////////////////;;;;;;;;;;;;;;;;;;@@@;;//;;;;;;;;;;;;;;;;;;;;;;;;@;@;;;;;;;;;;/////////////////////////;;;;/;;;////``///`//`//////;;;//////``````////////`/`/////////;;;;;;@;///////////////`````````````//`/``//////```````//////////////////;;;;;//////////////////////////////////////////////////``````///////////////;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;/;///;;;;////;;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;/
//////////////////////////////////////`````````````````````````````````````````````````````````////////////;;;;;;;;;;;;@;;;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;///////////////////////;;;;///;;//`////`/`/////////;;;///`///```/`;;;;;//``////////////;;;;@@////////////////```///````````/````//////``````////////////////;;;;;;;//;////////////////////////////////////////////////`///````/////////////;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;/;;/;/;;/;;//////;//;//;;;/;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///////////////////////////////////////`````````````````//``/````````////``````````````````````````````````````````//```//////////;;;;/;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;//////////////////////;;;;@/;;;;///////////`///////;;;////////``/`/;;;//``//`///;;;////;;;;@/////////////////////////`````````````///`````///////////////////;;;;;;;;;/////////////////////////////////////////////////////`//``///////////;;;;;;/;;;;;;;;;;;;/;;;;;;;//;/;/;//;;;;;;///;//;//////;;;;/;;;;///;;/;;;;;;;;;;;;;;;;;;;;;;;;;
//////////////////;;////////////////////////////////////////////////////////////////////////`//////``//`///``````````````///////////;;;;/;;;;;;;;;;;;;@@@@;;;;;;;;;;;;;;;;//////////////////;;;;;;;;;/;;/////////`/``//////;;;;;//`////`````//;//`/`///////////;;;;;;///////////////////////////````/```````///````/////////////////////;;;;;/;///////////////////////////////////////////////////////////////////////;;;;;;;;;;;;/;;;;;;/;;;;////////;//;;//;;;;;;;;;;;;;;;;;;;;;;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;//;//;/;;;;;;;;;;;;////////////////////////////////////////////////////////////////////////////////////`//////////////;;;;;@@@@@;;;;@@@@@;@;;;;;;;;;;;;;;;;;//////////////;;;;;;;;;;;@//;;;////````//////////;;;;////``/```//``/;;//``////////////;;;;///////////////////////`//////``/```````````////////////////////////;;;;;;////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;;//;;/;;;;;;////////;//;/;;/;;//;///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////;;////;;;;;///////;;/////;;/;///////////////////////////////////;/////;;;;;;;@@@@@@@@@@@@;;;;;;;;;;;;;;;;;/;;;;/;/////////;;/;/;;;;;;;@@;;;;;////`///``//////;;/;;;;//////`/``````;;//```/`//////;;;;;;/////////////////////////////////````````////////////////////////////;;;;;/////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;/;;/;;;;;/;//////////;/;/;;/;//;////;;;/;;;/;;;;;;;;/;/;;;;;;;;;/;;;;;////;;;;;;;;
;////////////////;;@@@;@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;@;;;;@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;//;;;/;;;;;;;;;;;;@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;////////;;;;;;;;;;;;;;@@@;;;;;////```//`//////;;/;;;/////``/`///````````/`//////;;;;;;;////////////////////////////////```````////;//////////////////////////;@;;;////////////////////////////////////////////////////////////////////////////`////////;;;/;;//;;///////////;/;/;;;;///;/////;/;;;;;;;;;;;;;/;/;;;;;;;;/;;/;;///;;/;;/;;;
////////////////`//``////////;//;;;///////;;;;;;;;;;;;;;;;;;;////////////;;;;;;;;;;;///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////``///;;;;@@@@@@@;;;;;;;;;;;;;/;/////;;;;;;;//////;;;;;;;;;;;;;;@@@@;;;;///////``/////`;;;;;;;;;//////`/`//`/``/``/`///`///;///;;/////////////////////////////////````///////////////////////////////////;;@////;///////////////////////////////////////////////////////////////////`//``/////////////;;/;;;;////;///;//;/;///;//;;;/;;;;;/;;;;;;;;;;;;;/;;;;;;;;;//;;;;;;;/;//;;/;;
////////////////////////////////////``````````//////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////`/`//````````````````/;;;;;////////;;/;;;;//;////;;;;;;;;;;;;@@@@@;;;;////////////////;;;;;;;;//////////`/``/`//////////////;;/////////////////////////////`////``/////////////////////`///////////////@@@;//;/////////////////////////////////////////////////////////////////```/`/``/////////////;//;;;;//////////;/;/////////;;;;;;;;;;;;;;;/;;;;;/;;;;;;;;;/;;/;;/;;/;;//;;;;
////////////////////////////////////////``````````````````//////`///`////`//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////```/``````````````````````////;;;;;;//////;;;;;;;/;;@@@@@@@;;;;///////////////////;;;;;/////`//////`/`/``/////;/////;;;//////////////////////////////`///``/////////////////////////////////////@@@;/////////////////////////////////////////////////////////////////`````///////////////////////;;;;;///;//;///;;//////;/;/;;;;;;;;;;;;;;;;;;;;;;;/;;;;/;;;;;;;//;/;;;//;;
;;;;;/////////////////////////////////////////`````````````````````///////`````////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;///////////////////////````````````````///;;;;;//////////;@@@@@@@@@@;;;;////////////;;/;///;;;;;;//////`/////`/`/////////////;;///////////////////////////////////``//////////;;/////////////////////////;;;;///////////////////////////////////////////////////////////////```````/`////////////////////;;;;;//;////////;/;////;/;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;/;;;;//;;/;;;
;;;;;///;//////////;;//;;;//;;;///////////////////////////////``````````////`///////////////````///;;;;;;;;;;;;;;;;;;;;;;;;;/////////;;//////////////////`````````````````````//;//////;;@@@@@@@@;;@;;;;////``/////////////;;;;;;////////``///``//////////;;;;;//////////////////////////////////////////////////////////////////////////;;;;//////////////////////////////////////////////////////////////``````````/////////////////////;;/;;//;/;;/;////;///;;/;;;;;;;;;;;;;;;;;;;;;;//;/;;;;;;;;;;;;;;;;/;/;/;/;
;@@;;@;;;;;;///;;;;;;;;;;;;;;;;;;;;///////////////////////`````///````````````````````///////``////``/````/;;;;////////;//////////````````///```````````````````````////`````````/;////;;@@@@@;;;;;;;;;///////////////////;;;;;;;;///`//```/`/``///////////;;;///////////////////////////////////////////////////////////////////////////;;;;///////////////////////////////////////////////////////////````````````//`////////////////////;;;//////;/;/////;;;;//;/;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;/////;/;;;
/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////////////////////```````///////```//////``/````````//////````````````````````````````````````````////////////``````////;;;@;;;;;;;;;;;/;//////////////////;;;;;;;;//`/`////////`///////;;//;;//////////////////////////////////////////////////////////////////////////;;;;///////////////////////////////////////////////////////////`````/`//`//////////////////////////;;/;///////;;/;;;//;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;/;/;;;;;//;;
/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////////////////////``````````````//////////////```////////`````//`````````````````//``/////////////;;//;/////////``//````//`///;;;;;;/;///////////////////;;;;;;;////////``/`//````////////;;//////////////////////////////////////////////////////////////////////////;;;;;;;///////////////////////////////////////////////////////````````/////////////////////////////////;//;;/;;/;;;;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;
////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;/////;///////;//////////////////////////```````````````/```///////////////////``````//`````````/////////////////////;;;;/;////////////////;;;;;;///////////;;/////////;;;;;;;;///`//```/`///```////;;/@///////////////////////////////////////////////////////////////////////////`````//`/////////////////////////////////////////////////////`/``//```////////////////////////////////;////;;/;;;;;;;;///;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;/;;
;////////;;;;/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////;////;////////////////////``///```````````````````````/////////////////`````/``//``/``//````//;;/;;;;;;;;/////////////;;;/;//;//;/////;////;/;////;;;;;;;;;;/////`///`///////////;;@@;//////////////////////////////////////////////```````````/``/////////````````````/////////////////////////////////////////////////////```/````/////////////////////////////////////;;;;///;;;;;;;//;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;
;;;;;////;;;;;;///////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@;;;;;;;;;;;;;;;;;;;/////////////////`/```//////```````````````````///``````````````````///``//```/;;;;;;;;;;;;;;//;;;;;;;;;;//////``/;;////////;;;;;;;;;;;//////////////```//;;/;;@;;/////////////////////////////////////////////`````````````/////````````````````//`///////////////////////////////////////////////////````````///////////////////////////////////////;;;;//;;;;;;;;/;;/;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;/;;;
//;;;;;;;;/;;;;;;;;;;///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////;/////////////////////////```///```````````/``````///////`//////////````//;;;;;;;;;;;;;@;;;;;;;///////////////`///;/////;;;;;;///////////``/`////;/;;@@;;;;//////////////////////////////////////////```````````////////`````````````````///////////////////////////////////////////////////``````/////////////////////////////;//////////////;/;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;
/````//////////////;;;;;;//////;;;;;;;;;;;;;;;;;;;;;////;;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////////////////////////////////////////////////////;;;;/`////``````/;@@;;;;;;;;;;////////////////////;;;;;;;;;@;;;;/////////`///////;///;;@@;;/;//;;/////////////////////////////////////`````````//////////////`````````````````//////////////////////////////////////////////````````///////////////////////////////;;;//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;
///////////////``/////////////;;;;;;;;;;;;;;;;;;;;;;;//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;/////;////////////////////////////////;;/;;;;;;/////////////```````/;;;/////////////;/////;///////;;;;;;@@@;;;/////;;///////`////;;;@@@;;;//;;;//////////////////////////////////````````////////////////////````````/``````````/////////////////////////////////////////``````/`/////////////////////////////////;/;////////;//;;;;;;;;/;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//////////``/`//////`//////////////////;;;@@@@;;;;////;////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;/////;/;;////;;/;;//;;;/;;;/////;;;;//////////////`///``//////;;/;////;//////////////;;;;@@@@@@;/////;;;;;;///`//////;;@@@;;;;//;;;////////////////////////////////````````//////////////////////`````````````````//////////////////;/////////////////////````````////////////////////////////////////;;/////////;;;/;;;;;;;;;//;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;
/////////////////////;/////////``/`//////////////;;;;;;///;;;//;;///;/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;////////////;;;;;;;;;;;;;//////////////````///;////;///////////;//;;@@@@@@@@@;;/////;;;;;;;///;;/;;;@@@@;;;;;;;//////////////////////////////////```/``/////////////////////////```````````````/////////////////;/;/////////////////////```````/////////////////////////////////////////////////;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;///////////////////////////////////////////////////;;/;/////;;;;;///;;;;;;///////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////;;////////;;;;;;;;;;;;;////////////```////;;//;/;;;;;;;;;;@;@@@@@@@@@@;;;;///``;@;@;/////;;;@@@@@;;;;;;;;///////////////////////////////////////`////////////////////////``//``````````/////////////////////////////////////////``````///////////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;
;;;;;;;;;;;;;////////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;/////////////////////////;///;;;;/////////////////`//;;;;;;;;;;;;;;;@@@@@@@@@@;;;//////`;`///////;;;@@@@@;;;;;;;;////////////////////////////////////////////////////////////////``/````/`````/`///////////////////////////////////////`/`///``///////////////////////////////////////////////////;;;;;;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;
;@;;@;;@;;;;;;;;;;;;;;;;;;;;/////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;////;;;;///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////;;;;;;;;;///////////``````/;;;;;@;;;;;;;@@@@@@@@@;;;;///////`//////;;;@@@@@@;;;;;;;;//////////////////////////////////////////////////////////////////```/````///////////////////////////////////////////`///////``//////////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/////;;;;@@@;;;;;;;;@@@@;;;;;;;;///////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;///;;////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////`/``////;;;;;;;;;;;/////////`````//;;;///;;;@@@@@@@@@@;;;////////////;/;;;@@@@@@@;;;;;;////////////////////////////////////////////////////////////////////``/////////////////////////////;//////////////////``////```//////////////;/;/;;///;////////////////////////////;;;;/;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///////////////;;;;;;;;@@@@@@@;//////////////////////;///////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////////////////////;;;;;;;////``/;;;;;;;;;;;/////////////`/`````//////;;;;;;;;;/////////`/````///;;;@@@@@@@@@@@@;;;;;//////;//;;;;@@@@@@@@;;;;;;/////////////////////////;;//;;////////////////////////////////////```//////////////////////////////////////////////`/`////`/////////////////;;;;;;/;/;//////////////////////;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///////////////////////////////////////////////////;;;;//``//////////`/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////////////////``/```/`/;;;;;;;;;/;/////////////```////```````/;;;;;;;;///////`````/;;@@@@@@@@@@@@@@;;;;////;///;;;;@@@@@@@@@;;;;;/;;;///////////;///////////////////////////////////////////////////```////////////////////////////////////////////////``//////////////;///;;//;;/////;////////;////////////;;;;;;////;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;/////////////////////////////////////////////////;;/////`/////////////;;;;@@@;;;;;;;@@@@@@;;;;;@@;;;;;;;;;;;;;;;;;;;;//////////////////////////////`````/;;;;;;;;;;;///////////////////`````````/;;;;;;////////```````/;@@@@@@@@;;;;;;;;;;;;;;;;;@@@@@@@@@@;;;;;;/;;;;/;/////////////////////////////////////////////////////`/////`````///`////////////////////////;////////////////////////////////////;;/;;;;;;///;;;///////////////////;;;/;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;
;;;;/////////////////////////////////////////////////////``/////////////////////////////;;;;;;;;;;;;;;;@@@@@@@@;;;;;;;;;;;;;;;///////////////////////////`/`;;;;;;;;;;;;;;;//////////////////``````````//;;;;/////////`````/;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@;;;;;;;;;;;;/////////;/////////////;///////////////////////////````/////`````/``//`//`/////////////////////////////////////////////////////////;;;;;;;/;//;;;;;;//;;////;/////;;;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;/;/;;;////////////////////////////////////////```/////////////;/////////////////////////////`/////////;;;/////;;;;;;/;;;;;;;;;;;;;;;//////////////;;;;;;/////;;;;@;;;;;;;;;////////////```````````;;/////////`//////;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@;;;;;;;;;;;;///;/;;;///;/////////;;;/////////////////////////`/````````/```````````/////////////////////////;////////////////////////////////////;;;;/;;/;;;//;;;;;/////;/;;/;;/;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;
;;;;@;;;;;;;;;;;;;;;;;;;////;;;;;//////////////////////`````////////////;/////////`````/````////////////////////`/////`````/////``//////;;;;;;;;;;;;//////////////;;;;/////;;;;;;@;;@;;;;;;/////////////```///;;;;;;////////;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@;;;;;;;;;;;///;/;;;////////////;;;;;//////////////////////````````/////``````````////////////////////////;//////////////////////////////////;;/;;;;;;;;;;;/;;;;;;;/;///;//////;;;/////;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
////;;;;;;;;;;;;@;@@;;;///;;;;;;;;//////////////////``````/////////////;////////////////////////////////////////////////////////``//////;;;;;;;;;;;;;;;;;;;///////////////////////;;;;;;;;;;;;/////////////////;;;;;;/////;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@@;;;;;;;;;;;///;;;/;;///////////;;;;;/////////////////////````````````/`//```````//////////////////////////;///////////////////////////;///;;;;;;;;;;;;;;;;;//;;;;;;;;;;/;;///////////;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///////////;;;;;;;;;;;////;;;;;;;;////////////////////```//////////////;//////////////////////////////////////////////////////////////;;;;;;;;;;;;;;;;;;////////////////////////////////////;;;;;;/////////////@@@@@@;;;;;;;;;;;;/;;;;;;;;;@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;////////////;;;;;;///////////////////```////////////////```//`//////////////////////////;////////////////////////////////;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;//////////;;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//////////////////////;/;;;;;;;;;;;////////////////////////////////////;////////////////////////////////`/////;;;;;;;;;;;;/////////;;;;;;;;;;;;;;;;;;///////////////////////////////////////////////////`//;;;;/`/;;;;;;;;/;;/;;;;/;;;;;;;@@@@@;;;;@;;@@;;@@@;@;;;;;;;;;;;;;;;/;////////////;;;;;;///////////////////``/////////////////```///////////////////////////////;/////;////////////////////;;//;//;/;;;/;;;;;;/;;;;;;;;;;;;;/////;/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;
;;//////////////////;//;;;;;;;;;;;;///////////////////////////////////;;;;;;;;;;/////////////////`////////`/`//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////////////````````///////////////////////`/;;;;/`///;;;;;///;//;;/;;;;;;;;@@@@;;;;;;;;;;;;;@@@@@;;;;;;;;;;/;////////////////;;;;;;//////////////////////////////////////``////////////////////////////////;;///;;/////////////////////;;;////;;;;;;;;;/;;;;;;;;;;;;;;;///;;;;///;/////////;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;@;@;;;;;;@@@@@;;;;;;;;;;
;;;;;;;;///`////``/;;;;;;;;;;;;;;;;;//////////////////////////////////;;;;;;;;;//////////////////////////////`//@@@@@@@@@@@;@;;;;;;/////////////////////////////////////////``````////////////////;;/////////////////;;;;;;;;;//;//;/;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;//;////;/;;;;//////;;;;;;;////////////////////////////////////////////////////////////////////////;;;;;;;///////////////////;//;;/;/;;;;;;;;/;;;;;;;;;;;;;;;;///;;////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;@@;;;;;
@@;///////////////;;;;;;;;;;;;;;;;;;;/////////////////////////////////;;;;;;;;//////``/////////////////////`/`/`/;;;;;;@@;;;;;;/;;/////////////////////////////////////////////////////////////////////////;;//////;;;;;;;;;;;;;;;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////;;////////;;;;;;;;////////////////////////////////////////////////////////////////////////;;;;;;;/////;;//////////////////;;;;;;;;;;;;;;;//;;;;;;;;;;//;////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/``/`////////////;;;;;;;;;;;;;;;;;;;;/////////////////////////////////;;;;;;///////////`//////////////////////`///;;;;;;;;;;/;/;/////////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;/////;;;;;;;;;;/////////////////////////////////////////////////////////////////////////;;;;;;/////;;;////////////////;/;;/;;;;;;;;;;;;;;;;;;///////////////////////`////;;;;;;;;;;;;;;;;/;;;;;;;;///;/;;;;;;;;/;;;;;;;;;;;;;;;;;;
////////////////;;;;;;;;;;;;;;;;;;;;//////////;;;;;/;;////////;//////;;;;;;////////////`///////////////////////////;;;;;;;/;;/;////////////////////////////////////////////////////////////////////////////////;;;;;;;;/////;;;;;;/;////;/;;;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;//////;;;;;;;;;;/////////////////////////////////////////////////////////////////////////;;;;;///////;;;;//////////;/;;/;;;;;;;;;;;;;;;;;;;////////////////////////////////;;;;;;;;;;;;;;;;;;;;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;/
///////;///;;;;;;;;;;;;;;;;;;;;;;;;;;///;;//;;;;;;//;;;//////;/``////;;;;////////////////////////////////////`//////;;;;;/;;;;;//////////////////////////////////////////////////////////////////////////////////////////////;;;;;/;//;//;//////;/;;;;;;;;;;;;;;;;;;;;;;;;;//;//;;;//;;;;;;;;;;;;/////////////////////////////////////////////////////////////////////////;;;;;///////;;;/////;///////;;;;/;/;;;;;;;;;;;;///////////////////////////////////@@;@;;;;;;;;;;;/;////////////;;;;;;;;;//;;;;;;;;;;;;;;//
///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;/;//////////;/``/////;;///////;///////////////////////////////`//////;;;;;;;;;;;///////////;////////////////////;/;;;/////////////////////////////////////////////////////////;;/;;///////////////////////;;;;;;;;;;;;;;;;;////;;;;/;;;;;;;;;;;;;///;;/////////////////////////////////////////////////////////////////////;;;;///////;;///////////////;//;;;;;;/;;;;///////////////////////////////////////;@;;;;;;;;;;;;;;/;;;///;/;;/;;/;;;;;;;;;//;;;;;;;;////;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;////////////`///////;;///////////////////////////////////////////////`@@;;;;;;;;//////////;;/////////////////;;;;;;/////////////////////////////////////////////////////////////;/;///////////////////////////;;;;;;;;;;/;////;;;;//;;;;;;;;;;;;;////;/////////////////////////////////////////////////////////////////////@;@/////////;;////////////////;;;;////;;//////////////////////////////////////////@@@;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;//;///;;/;;//;;;/;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////````/`/////////////////////////////////////////////////////////;;;;;;;////////////;//////;/////////;;;;////;/;;////////////////////////////////////////////////////////////;///////////////////////////;;;;;;;;;;;/////;///;;;;;;;;;;;;;;//////////////////////////////////////////////////////////////////////////;@;/////////;//;////////;;;;;;;///////////////////////////////////////////////////;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;/;//;;;;;;;;//;;/;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////`/```/////;;///////////////////////////////////////////////////;;;;;;;;;/////////////////;////////;;;//;//////////////////;//////////////////////////////////////////////////////////////////////////////;;;;;;;;;///;;;;;/;;;;;;;;;;;;;////////////////////////////////////////////////////////////////////////////@;///////////;/;;//////;;;/;;/////////////////////////////////////////////////////@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////;;;;;;/////////////////////////////////////////////////;;;;;;;//////``/////////;;//////;;;/;/////////////////////;///////////////////////////////////////////////////////////////`///////////////;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;////////////////////////////////////////////////////////////////////////////@///////////;/;////////;;;;///////////////////////////////////////////////////////@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////////////;;;;;;;//////////////////////////////////////////////////;;;;;;;;////////////////;/////;;/;;;///;////////////////;//////////////////////////////////////////////////////////////////////////////////;;;;;;;;;;/;;;;;;;;;;;;;;;;;////////////////////////////////////////////////////////////////////////////@;//////////;////////;;//////////////////////////////////////////////////////////;;@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;/
/////;//////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////////////;;;;;;;;;;;/////////;/////////////////////////////////////;;;;;;;;/`//////```//////////;;;/;/;////////////////////;///////////////////////////////////////////////////////////////////////////////////;;;;;;;;;//;;;;;;;;;;;;;;;;//////////////////////////////////;/////////////////////////////////////////;;//////////;///////;;;////////////////////////////////////////////////////////////@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;
//////////////;;;;;;;;;;;;;;;;;;;;;;;;;////;;;////////////////;;;;;;;;;;;;;///////////////////////////////////////////////;;;;;;////////`````/////;///;////;;///////////////////;//////////////////////////////////////////////////////////////////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////////////////////////////////////////////////////////;;////////////////////////`/`///////////////////////////////////////////////////;/@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;///;;;;;
/////;//;/////;;;;;;;;;;;;;;;;;;;///////;;;;;//////////////////;;;;;;;;;;;;;//////////////////////////////////////////////;;;;;;//////////``//////////;///;///////////////`/////////////////////////////////////////////////////////////////////////;;//////////////////;;@;;;;;;;;;;;;;;;;;;;;;//////////////////////////////////////;//////////////////////////////////////;;/////////;;/////////////////////////////////////////////////////////////;;//////;@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//////////////;;;;;;;;;;;;;;;;;;;/////;;;;;;///;/////////``````/;;;;;;;;;;;;//////////////////////////////////////////////;;;;;////////////////////;;;;////////////////////////////////////////////////////////////////////////////////////////////;/////////////////////;;@;;;;;;;;;;;;;;;;;;;;/////////////////////////////////////////////////////////////////////////////;;//;;/////////////////////////////////////////////////////////////////////;;;///;;@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///////////;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////``````//;;;;;;;;;;;;;/////////////////////////////////////////////;;;;//////////////////////;;;/////////////////////////////////////////////////////;////////////;;/;/////////////////////;///////////////////////;;@;;;;;;;;;;;;;;;;;;/`////////////////////////////////////////////////////////////////////////////;;;///////////////////////////////////////////////////////////////////////;;;//////@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@;;;;;;;;;
//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////;/;;;;;;;;;;;;////////////////////////////////////////;;;;;@/////////////////////;/;//////////////////////////////////////////////////////;;///////////;;;;;;///////////////////;;////////////////////////;;;;;;;;;;;;;;;;;;;;///////////////////////////////////////////////////////////////////////////////;;//////////////``//////////////////////////////////////////////////;/;///;;/;;;;;;@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@;
//;/////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////////;;;;;;;;;;;;;;;//////////////////////////////////////;;;;;;;//////////////////////////////////////////////////////////////////////////////;//////////;;;;;;;;//////////////////;;//////////////////////////;;;;;;;@;;;;;;;;;@@///////////////////////////////////////////////////////////////////////////////;;;////////////////////////;;//////////////////////////;;////////////;;;;;/;;;;;;;;;@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
///////////;;/;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////;;;;;;;;;;;;;;;;;;/;/////////////////////////////////;;;;;@@;////////////////////////////////////////////////////////////////////////////;;;////////;/;/;/;;;/////////////////;;;///////////////////////////;;@@@;@@@@@@@@@@@@///////////////////////////////////////////////////////////////////////////////;;;;///////////////////////;;;;;;//////////////////////////////////;/;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
////;//;//////;;;;;;;;;;;;;;;/;;;;;;;/;;/;//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////////////;;;;;@@;///////////////////////////;////////////////////////////////////////////////;;////////;///;;////////////////////;;;;////////////////////////////;@@@@@@@@@@@@@@@@/////////////////;//////////////////////////////////////////////////////////////;;;///////;/////////////////;;;;;;////////////////////////;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;
//////////////;;;;;;;;;;;;;;;;;;;;;;;;;//////////////;///;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////;;;;;//////;;;;;;;;;/;////////////////////////;;///////////////////////////////////////////////////;///////////////////////////////;;;/////////`///////////////////`////;@@@@@@@@@@@//////////////;;;;;//;///////////////;/;///////////////////////////////////////;;;;///////;//////////////////;;;;;;;;;;//////////////;;/;;;;////////;;;;;;;;;;;;;;;;;;;/;/;;;;;;;;@;;;;;;@@@@@@@@@@@@@@@@@;@;@;@;;;;;
////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;;////;;;;;;;;;;/;////////////////////////;;//////////////////////////////////////////////////////////;////////////////////////;;;////////////////////////////////////;@@@@@@@@@////////////;;/;;;;;///////;////////////////////////////////////////////////////;;;;;/////;;////////////////////;///;;/;/;////////;/;///;;/;///////;;;;;;;;;;;;;;;;;///;/;;;;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
///////;/;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;////////////////;;;;;;;;;;;;;;;;;////////////;//////`///;;;//////////////////////////;/////////////////////////////;/////////////////////////;;////////////////////////////////``/////;@@@@@@@///////;///;;;;;;//;;///;/;;;////////////;///////////////////////////////////;;//;;;;/////;;///////////////;;;;//;;;;;;;/;;;;//////;/;;;;;;;/////;;;;;;;;;;;;;;;;;;///;/;///////////;;;;////;;;/;///;;;;;;;;;;//////;
////////;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////;;;;;;;@;;;;;;;;;;///;;;////////////////;;;;;/////////////////////////;;//////////////////////////////////////////////////////;//////////////////////////////////``////;;@@@@@@///////;;;/;;;;;;//;;;;;;;;;;///////////////////////////////////////////////////;;;;;;////;;/////////////;;/;;;;;;;;;;/;;;///////;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;/;;;/;//////;/;///////////;////;/;;;;;;;;;//////;;/
;////////;////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;/;///////////;;;;;@@@;;;;;;/;;;/;;;;;;//;///////////;;;;;/////////////////////////;;;//////////////////////////////////////////////////////////////////////////////////////////`////;;;;;;;//////;;;;;;;;;;;;;;/;;;/;;;;;/;////////;////////;/;/////////////////////;////;;;;;;;;/////;/;;;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;///;//;/;///////////////////////////////////;;;//
///////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////;;;;;@;;;;;;;;/;;;;;;;;;;;;;///////////;;;;;;///////////////////////;;;;///////////////////////////////////////////////////////////////////////////////////////////////;;;;;;;//////;;;;;;;;;;;;;;;;;;;;;;/;/////////////////////////////////////////////;/;;;;;;;;//////;;;;;/;;////;;;;;;;;;;;;;////;/;;;;;;;;;;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;;////;/;/////////////;//;///////////////////////////
///;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////;;;;;@;;;;;;;;//;;;;;;;;;;;;;;;////////;;;;;;;;;////////////////////;;;;///////////////////////////////////////////////////////////////////////////////////////////////;;;;;;;//////;;/;;;;;;;;;;;;;;;;;;;;///////;///;;/;///////////////////////////;///;;;;;;;;@;;;////;/;;;;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;;/////////////////////;//;;//;//;/;///////////
/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;///////;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;////////;;;;;;;;;////////////////////;;;;;////////////////////////////////////////////////////////////////;;;////////////////////////////;;;;;;//////;;;;;;;;;;;;;;;;;;;;;;;;;////////;;;;;//;;;;;/;////////////;//;//;;;;;;;;;;;;;;;;////////;;;;//;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////////////////;/;/////////////////
//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;;;;////;;//;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;/////////;;;;;;;;;;//////////////////;;;;;;//////////////////////////;;//////////////////////////////////////;/;;////////////////////////;;;;;;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;///;//;/;/;/////;;;/;;;;;/////////;;;;;;;;;;;;;;;;;;;;;//////;;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////;/////////////////////;////////////////////
////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////;;;;;;;;;;;;////////////////;;;;;;;//////////////////////////;;;/;////////////////////////////////////;;;;/////////////////////;;;;;;;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;;///;/;;;;;;;;;////;///;;;;;;;;;;;;;;;;;;@;;;;;////;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;////////////////////////////;///////////////////
//////////////;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;//////;;;;;;;;;;;;;///////////////;;;;;;;;///////////////////;//////;;;;///////////////////////;/////////////;//;///////////////////;;;;;;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;//;///;;;;;;///;//;;;;;;;;/;//;;;;;;;;;;;;;;;;;;;;;@@@;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////////////////////////////
/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;;;;;;;;;;;;;;;;;;;;//////;;;;;;;;;;;;;;;///////////;/;;;;;;;;;/////////////////;;//////;;;;;;////////////////////////////////////////;;////////////////;;;;;;;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////////////////////////////////////;////
/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;;@;;;;;;;;;;;;;;;;;;;////;;;;;;;;;;;;;;;;;;;////////;;;;;;;;;;;;////////////////;;/////;;;;;;;;;////////////////////////////////////////////////////////;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;/////;;;;;;;;;;;/;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;///////////////////////////////////////////////
//////////////;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@;;;;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;///;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////;;;;;;;;;;;;////////////////////////;;;;;;;;;;///////////////////////////////;;////;;///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;@@@;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////;/////////////////////////////;////////////
/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;@@@@@@@@;;;;;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;//;;@@;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////;;;;;;;;;;;;;//////////////////////;;;;;;;;;;;;;;;////////////////////////////;//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;/;;;;;;@;;@@@;;;;/;/;;;/;/;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;/////////////////////////////////////////////////
/////////////;//;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@;;;;;;;;;;;///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;/;/;/;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;;///////////////////;;;;;;;;;;;;;;;;;//////////////////////////////////;//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;/;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;/;////////////`///////////////////////////////////
;/////////;/////;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;;@@@;@@@@@@@@@@@@@;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;/;;;;/;;;;;;;/;/;//;//////;;;@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;;;;;/////////////////;;;;;;;;;;;;;;;;;;;;////////////////;/;/;//////;/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;/;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@;;;;;;;;///////;////////////////////////////////////////
/////////;///////;;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;@@@@@;@@@@@@@@@@@@@;;;;;;;;;;;;;////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;/;/;//////;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;;;;;;;;////////////////;;;;;;;;;;;;;;;;;;;;/////////////////;;;;;////////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;;;;///////;;////////////////////////////////////////
/////////////;/;//;;;;;;@@@@@@@@@;;;;;;;;;;;;;@;@@@;@@@@@@@@@@@@@@@@;;;;;;;;;;;;;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;//////;/;/////;;;;;;;@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;/////////////////;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;/;///////////;//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@;;;;;/;///;;;//;////`/////////////////////;;/////////;///
`///////////;;;;;/;;;;;;;@@@@@@@@@@@;;;;;;;@@@;@;@@@@;@;@@@@@@@@@@@@@;;;;;;;;;;;;;//////;;;;;;;;;;;;;;;;;;;;;;/;/;;;;/////////;///;;;;;;;;;@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;////////////////;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;////////////;;/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@;;;;;;/////;///;//////////////////////////////////////;///
/`///////////////////;;;;;;;;;@@@@@@@@@@@@@@@;;;;;;;;@;;;;@@@@@@@@@@@@;;;;;;;;;;;;;///////;;;;;;;;;;;;;;;;;;;;/;;///;;///////////////;;;;;;;;@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;;/;;/////////;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@;;;;;;///////;;//////////////////////////////////////////////
//////////////////////;;;;;;;;;;;;@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;//////;;;;;;;;;;;;;;@;;;;;///////;/////////////;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;///////////////;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;;/;//////////;//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@;;;;;;;;////////;/////////////////////////;////////;///////////
//`/////////////////////;;;;;;;;;;;;;@@@@@@;@;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;//;//;;;;;;;;;;;;@@;;;;;////////////////;///////;/;;;;;;;;;;;@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////////;;;;;;;;;;;;;;;;;;;;;;;//////////////;;;;//////////////////;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;;;;;;;/;///;////////////////`/////////////////;///////////;/;
////////////////;///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;//;;;;;;;;;;;;@@@;;;;;;;///////////////////////////////;;;;;;;;;;;@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////;;;;///////////;////;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@;;;;;;;;;;;////;//;//;////////////`//////;//////////////////////////
//////////////////;/////;/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;/;;/////////////////////////////////;;;;;;;;;;;;;@@;@;@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////;;;;;/;/////////;///;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;/;//////;////////////////////////////////////////////////
//`//////////////////////////;//;/;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;/;;;;;@@@@@;;;;;;;;;;;;;@@@@@;;;;;;;;;;////;/////////////////////////////////////;;;;;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;/;;////////;;//;;;;;;;;;;/;/;;;;;;;;@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;@@@;;;;;;;;;/;///////////;///////////;//`/////////////////////////////`/
/`/////////////////////;/;/////////;;/;;;;;;;;;/;;;;;;;;;;;;;;;/;//////;;;;;;;@@@@;;;;;;;;@@@@;;;;;;;;;;;;;////////////`/////////////////////////////////;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;//////;;/;;;;;;;;;;;;;;;;;;;;;;;@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;;;;;;;;;///////;//;//////////////////////////////;////////;/////;/
///////////////////////;;/;;//;/////;;//////;;/;/;;;;;;;/;///////;///////////;;;;;@;;;;@@@;;;;;;;;;;/;////////////////`/`////////////////////////////////////;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;@@@;;;;;;;/;//;;;///////////////;//////;;/////////////////////////////////
//////////;/////////////////////////;;;//////;;;;/;///;;;/;/;///;//////////;/;///;;;@@;;;;;;/;/;;;;//////////////`////////////`/////////////////////////;/////;;;;;;;;;;;;;@;@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@;;;;;;;;;;;;;;;//;/;;;/////////;;//////////////;///////////////////////////////
///////////////////////////////////////;/;////;/;;//////;;/;/;///;;///////////;/////;;;;;;/////;/;/;;/////////////////////`//////////////////////////////////////;//;/;;;;;;;;;;;@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@;;;;;;;;;;;;;;;;@@@;;;;;;//;;;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@;;;;;;;;;;;;;;;;;;;;@@@;;;;@@@@@;;;;;;;;;;;;//////;//////////;//////////`////////////``///////////////`//////
////////////////////////////////////////;;/////;/;;//////////////////;///////////////////////////////;////////////////////`////////////////////////////;/////////;///////;;;;;;;;;;;;;;@;@;;@@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@@;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;@@@;;;;;;////;;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@;;;;;;@@;;@;;;@@@;;;;@@@@@@;;;;;;;;;;;;;;;;;////////;//////////////////////////////////////////////////
//////////////////////;/;//////////////////////////;///////////////////////////////////////;//////////;////////////`///////`///////////////////////////////////////////////;/;//;;;;;;;;;;;;;;;@;@@@@@@@@@;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;@@@@;;;;;;;////;;;;;;;;;;;@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@;;;;;@@;;;;;@@@@;;;;@@;@;;;;;;;;;;;;;/;/;///////////////////;///////////`//////////`//////////////////
//`/////////////////////////////////////////;/////////////////////////////////////;////////////////////////////////```/////////////////////`//////////;;;;/////////;///////;;//////;/;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@;;;;@@@@;;;;;;;;///;;/;;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@;;;;@@@;;;;;@@@@;;;;;;;;;;;;;;;/;/;//////////////////////////////////////////////////////`////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////`////`/``////////////`/////////////////////////////////;;;/;////////;//;;;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@;;@;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@;;;;;;;@;;;;;;;@@@@@@@@@@;;;;;;;;///;////;;;;;;;;;;;@@@@@@@;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@@@@@@@;;;;;;@@@@@@;;;;;;/;;;;;;;;//;/;;;;;;;;;;@@@@@@@@@;;;;@@@@;;;;@@@@;;;;;;;;;;;/;/;;;;/////;/;;///////////////////////////////////////`///////`//////////`
////////////////////////////////////////;/////////////////////////////////////////////////////////////////////``//////`/////////////////////////////`///////////////////////////;//////;;;/;/;/;;;;;;;;;@@@@@@@@@@@@@;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;@@@@;;;;;;;;;;;;/;///;/;/;;;;;;;;;;@;@@@@@;;;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;;;;;;/;;/;;;/;/;;;;;;;;;;;;;@@@@@@@@;;;;@@@@;;;@@@@@;;;;;;;;;;///;/;;;;///;;/////////////////////////////////////////////////////////`////
/``/////////////////////////////////////////////////////////////////////////////////////////////;//////////////`/`/////```///`////////////////////////////////////////////////////;///////;////;/;/;;;;;;;;@@@@@;;;;;;;;;;;;;/;;/;/;//;;;;;;;;;;;;;;;;;;;;;;/;;//////;///;/;;;;;;;;;;;;//////;/;;;///;;/;;;;;;;;;;;;;;;@@@@@@;;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;;;;/;///;;;;/;////;;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;;;/;/;;;;;//;;;/////////////////////////////////////`//////////////////`//`//
////////////////////;///////////////////////////////////////////////////////////////////////////////////////////``//////`/////``//////////////////////////////////////////////////;//////////////////;;;;;;;;;;;;;;;;;/////////////////;//////;;/;///;;;///////////////////////////////////////////;///;;;;/;;;;;;;;;;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;////;//;;/////;;;;;;;;;;;;;;;;@@@@@@@;@@@@@;;;;;;;;;;;;;;;////;;//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////`////////////``/`//////`/////////////////////////////////////////////////////////////;//;;;;;/////////////////////////;;///////////////////////////////////////////;///////;//////////;;/;/;;;;;;;;;;;;;;;@@@@@@@@@@@@;@;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;//;;//;///////;/////;;/;;;;;;;;;;;;;;@@@@@@@@@@@;;;;;;;;;;;;;;;;;/////;///////;//////////////////////////`/////////`///;///`/////////////////
/////;/////////////////////////////////////////////////;////////////////////////////////;///////////////////////////////```////`/``//////////////////`///////////////////////////////////////////;/////;/////;///;///////////////////////////////////////////////////////////////////////////////////////;///;;;;;;;;;;;;;;;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;/;;/;//;;;//////;///////;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;///////;/////;;///////////////////////////////////`///////////////`///////////
//////////////////////////////////////////////////////////////////////////////////////////;////////////////`/////`////////`/////`/``////`/////////////////////////////////////////////////////////;///////////////////////////////;///////////////////////////////////////////////////////////////////;////////;/;;;/;;;;/;;;;;;;;;;;;;//;;;;/;/////;;///////;///////////////;////////////;//;//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;///////;;;///;;///////////////////////////////////////////`////////////////////