@@@@@@@HHH@HHHHHHHHHHHHXXXXXXXXXXXXHH@@@@@@@@@@@M@M@H@@XH$$%@H$XHHHHHHHHXXXXXX
@@@@@HHHHHH@HHHHH@@@HHHHXXXXXXXXXXXH@@@@@@@@@@@@M@M@@@HHH$$$@H$X@HHHHHHXXXXXXX
@@@@@HHHHHH@HHHH@@@@HHHHHXXXHXXXXXXX@@@@@@@@@@@@M@M@@@HHH$$$@HXX@@HHHHHXXXXXXX
@@@@@HHHHHH@HHH@@@@@@HHHHXXXXXXXXXXH@@@@@HHHH@@@@@@@H@HHH$$$@XXXH@HHHHHHHXXXXX
@@@@@HHHHHH@HHH@@@@@@HHHXXXXXXXXXXXX@@HHHHHHH@@@@@@@H@HHH$$$@X$XH@HHHH@HXXXXXX
H@@HHH@@HHHHHHH@@@@@HHHXXXXXXX$$$$$$HHHHHXXXHHH@@H@HHHHHHX$$@H$XHHHHH@@HXXXXXX
H@@HH@@@HHH@HH@@@@@HHHHXXXXXX$$$$$%%XXXXX$$$XXHH@@@HHHHXHX$$@H$XHHHH@@@HXXXXXX
H@@HH@@@@@@@HH@@@@HHHXXXX$$$$$%%%%%%$$$$$%%$$$XXHH@HXHXXXX$X@X$XHHH@@@@HHHXXXX
H@@@@@@@@@@@@@@@@@@HHHX$$$$%%+++///++%+%%%%+%+%%$$XXXHXX$$$XHX$X@@HH@@@HHHXXXX
H@@@@@@@@@@H@@@@@@@HHXX$$$%%%+++/;/////++++++++%%%$$XXX$$$$X@X$X@@H@@@@HHHXXXX
HHH@@@@@@@@@@@@@@@HHXX$%%%%++++/;::::;;;;;;;;//+++++%$$$$%%$@X$X@HXH@@@HHXXXXX
HHH@H@@@@@M@@@@@HHHHX$%%%%%++///;;::=:::::::;;;////++%%%$+%$HX$XH@XH@HHHHXXXXX
HH@@@@@@@@M@@@@HHXXX$$%%%++/////;;::=:;:::::::;;/////++%$+%$HX$XHHXHHHHHHXXXXX
@@@@@@@@@@M@@HX$%%%%++++//;;///;;;;::::::;:::::;;;;;;+++%++%X$$XHHXHHHHHXXXXXX
@@@@@@@@@@@@HX$%%%%+++//;;;;;//;;;;::::;;;;;;;;;;;;;;++/+/+%X$$$HHXHHHHXXXXXXX
@@@@@@@@@@HHXX$++////;;;:::;;:::::::::;;;//;;;;;;;;;;///++%+%%$$XXXHHHHXXXXXXX
@@@@@@@@@HHXX$%///;;;;:::::::::::;;;;::;;//;;;;;;;;;;//+%+++%%$$$$$HXHHXXXXXXX
@@@HHHHHHH$%++/;;;;;;;:::::===:;;;;;;;;;;///;///;;;;;;;++++++++%%%%%$$$$XXXXXX
@@@HHHHHXX%+///;;;;;;::::=====:;;;;;;;;;;///;////;;;;;;/++%%+++%%%%+%%%$$XXXXX
@@@HHHHXX$+/////;;;;;::::===-:;;::;/;;;;;////////;;;;////+%$+++%%%+++++%$XXXXX
@@@HHHHH$%/+++//;;:::::::===:::::;////;///////;;;;;;;//;;/+%%%%%%++%++++%$$$XX
@@HHHHHH%%+++++//;;:::::=--=:::;;;///////////;;;;;;/;//;;;//%%%++++%%%++%%$XXX
@@HHHHXX+%%$%++///;:::;:=-=:::;//////////////;;;;;;///;;;;;;+%%+/+/++%%++/$$XX
@@@HHHX$%%$$%++//;;;::::===::;;//////////////;;;;;;;;;;;;;/;/+%+////+%+++/%$$X
@@HHHH$%%%%%%++//;;;;;:===:::;;/////////////;;;;;;;;;;;;;;;;;//+++/++$$$%+%%$X
@@HHHX$%%%%%++/;;;;;;;:====:::;+//+/////////;;;;;;;;;;;;;;;;;;/+%++++$$$++%$$X
@@HHHX$%%++%++/;;;;:;;:====::;;+//+////////;;;;;;;;;;;;;;;;;;;/+%%+++%%$%+%$$$
@@@HHX$/%%%+//;:;;;:::======:;////+///////;;;;;:::::::::::;;;;;/XX$//++++/+$$$
@H@HHX+/+%+///;::;::::=::==::;//+++///////;;;;;::::::::::::;;;;/XHH;/++++;%%$$
@@HHH$//%%++//;:::::::=:::=::;//++++/////;;;::::=========:::;;;;$HM//+%%+/%%$$
@@@HX%+/$%++;;;:::::::=::=:::;/+++++///;;;;:::::==-------==:;;;:%XM//+++++%%$$
@@@HX%++%+//;;;:=:::::=::=:::;/+//++///;;;::::===---------==::;:+$@+/+++%%%%$$
@HH$$++;;;:::::::::::===::::;;//++++///;;;:::===--,,,,,,,--=::;;;/%///++%%%%$$
@HX$%/;=:;;:::===::::====::;;;/+++++///;;;::===--,,,,,,,,,--=:::::////++%%%%$$
HX$//;;;/;::::===:;:====:::;;//+++%++///;;:===--,,,,,,,,,,,-==::;://///+++%%$$
HX%;;///;:::===::;;=====:::;;//++%%++///;;:===--,,,,,,,,,,,-==::;;//////+++%%$
H$++%+/;==;:===;;:==:===:::;;//+%%%++///;;:===---,,,,,--,,--==:::://////+///++
H%/%$/;:=====::;;:==:===:::;//+%%%%+///;;;:===---,,,,,--,,--==::::;+/;;/++////
H+/%%;:====::::::==::===::;;//+%%$%+///;;;::==---,,,,-------==:::;;+/::;///;;;
X+%%+:==::;;=::===:===::;;;/;//%$$%%//;;;;::===-------------=:;::;/;;:::;:;;++
X+%%+;:::::;===========:;;;////%%%%+//;;;:::====-----------==:;::;;;;;;:;;//+%
X$$%+;;;;;:::==::=====:::;;;//+%++%+//;;;:::======-==--=====::;::;;;;/;;;//+$$
X$$%+;///;;::::::===:::=:;;;//++++%+//;;;:::=========--=====::;::;;;;//;//+%$$
X$%%%+++//;;;:::==::::==;;;//++++%%+;;;:::::=========---====:::;;:;:;++///+%$$
$$$%%+++////;::::==:===:;;////+++%++/;;::::========-----====:::;;:;::++//++%$$
X$$%%+++////;;;::::===:::;/////++++//;::======-===-==----===:::;;::::////;%%$X
X$X$%++%++/;:::::=====:::;;//++%+++///;;:===-=----===---====::::/:::::;+/:%$$$
H$XX$%%%++;;:::====::=::;;;//+%%+++/////;:====-=---==---====::::/:::;;;+/:%%$$
HHXHH%%+/;:::::::=://::;;;//++%++++///+%+/;;:========---====:::=;::;/////;+%$$
H@XXX%%+/;:::::::==;/;;;;;//++++++++//+%++//;:::=======-====:::=:::;/////;/+$$
X@X$$%%+;;;::::::=-:;;;;;;//++++++++++%%++++/;;:::::===-=====::::::;/////;/+$$
XMH%%%+/;;/;::;::===::::;;;/+//;;;;///%%;-;//+//;::::::==:::;;;;;::;/;/;//;+$$
X@H%%++/;//;:::::=======:;;/+//;;;;;;;;+:-=//////;:::;;;;;;;;//;;:=;/;/;/%;+$$
HH@X$++/;/;;:::::=======;;///;;;;::::::====::;;;;:===/+%%:;//;//;:==://;/%/%$$
HHHXX%+/;/;;:::::=======;////;;;:::::::===::::;;;:===;/+/=:/+;;;:====;;;/%/%$$
HHX$$+///;;::::===-====:;;///;;:;:::=====::==:;;:===:::====:::::====-=:;+%+%XX
HX$%%+//;;:::======-==::;////::::::==========:;;====::::====::=========;%$%$XX
HX$%%+//:::::======-==::;////:::::===========:;;=====:=======:========-:%$%$XX
HXX%%+/;::::::=========:;+/+/;;:::========:::;;:=-=:::::======::=======;+%$XXX
HXX%%+/;:;:::::=====::==;/++/;;:::========::;;;:--=::::::====:::===-=:=/+%XXXX
HHX%%+;;::::::::======::;;/+///;::::====::;;/;::=-=::::::::=:::====-::=;%%$XXX
XXX%$/;;::;:;:::======::;;/////;::::::=:::;;/;:=--=::::::::::::========;%$$XXX
@X$X$:;;;//;:::::====:::;;;//++;;;:;:::::;;;;;:=--=::::::::::::========:%X$XXX
@XXX$:;/++/;:::::===:::;:;;///+//;:;::::;;;;;;:=--=:::::::::============%X$XXX
@HX$+://%%//:::::===:::;::;///+++/;;:;;:;/;;;;:=--=:::::::::============%XXXXX
@HH%/+++$+;;:::====:;;:::::;////++;;;;;/++;:;;:=--=::::::;;;=------===:;+%XXXX
@HH%+++%%/;;::=====:;;=::::;;/;/+/;;;;;/+//:;;:=--=::::::;;:------==:;;/+%XXXX
@HHX%%%$+/;;:::======:::=::::;:;;/;;::;//+%//;:=--==:::::::==----==;+//+%$XXXX
@HHX$%%%+/;::::===========:::::;;;;;::;//+%++/::===::::::===-----==/+/+%$$XXXX
@HHX$%%%/;;:=::============:::::::::::;//+%%++::==::;::::=------==:+%/%$$$XXXX
MHHXX%++;;::::::::=========:;::==::::::;/+%%%+/;;;:;;:::=----,,---=++%%%$$XXXX
@HHXX%++;;::::::::=========:;::==::::::;/%%%%%+++/:::::==---,,,,,-=++%%%$$XXXX
H@HHX$%/:;:::::========::==:::====::==:;/%%+%%++;::::::=------,,,--=;%X$$$XHXX
HH@HX$%;::::::=========:=-=:=====:::=:;;/%%%++//;;:::===------,,-===:%X$$$XXXH
XXXXXX%;:::::==========:=--====:=:;:=:;//%%%++++++;::==---,,,-,,:==::+%$$XXXHH
XXX$XX%;;;;::======-===:=-=====:=:;:::///++++++%%%;::==--,,,,,,,===:;/+%$XXXXH
XXX$$X+//;;::=========::=======:::::::////////+$$$/;:==--,,,,,----=:;/+%$$XXXH
XXX$$%%%/::::=========;;===::==:::::::+/;::===;+$$/;;==--,,,,,,-,--=:/+%$$XXXH
XXXX$%%$/:;:====::===:;;===::==:::::::/;::=---::%$/;;==---,,,,,,,--=:/+%$$XXXX
HXX$$%$$++/====;/:==:;//::::=====;/;::;;:=-,,,-:%%;;;::=-----,,,,,,-=;+%$$XXXX
HHX$$%%$%%/===:+%;=:://;:::::====;//;:;/;--,,,-:%/;;:::=-----,,,,,,--:/+$XXXXX
XH@XX$$$XX/==::%%;;:;/;;::://:===://;;;++:====://;;:::==----,,,,--,,-=;/$XXXHH
XH@HXX$XXH+-:;;%%;;;;;;;;::+/:===://;;///;::::;//;;;:===----,,,,,,-,-=;/%$XXHH
XHHHXXXXXH+-;;;%%;;;;/;/;;;+;:====//;;;;;/;:::;//;;::====-----,,,,---=:/%$XXHH
$XXHHHXXXH+=//:$%;;;;;;;;;;;:=====:;:;;::;:::://;;:::=====-----,,,-==-=/%%XXXX
$XXHHHXXXX%;//;$%::;;;;;;;;;:=====:;:;:::;::::;/;;::========-----,,-:-=++%XXXX
$$XXXHH@XX$%/+++;:;/%+++;;;::=====:::::;;;;;::;;:::==========---=-,,=:=;%%$$XX
$$$XXHH@XXX$+$$+///+%%//;;;:=========::;;/;;:::::::====-======-=:=-,-::/%%$$XX
%$$XXHH@HXXX$XX%+++%$+//::::=========:;;;/;;:;::::==---=====:==::--,-:;+%%$$XX
%$$$$XXHHXXXXXXH$%%$$%/;:::=:=========::;;;;:::::====-===::=:::;=--=:/++$$$$XX
+%%$$$XXHH$XXXHXX$$%%+/;;::::=======::::;:;:::::======-===:::;;;:==:://+$$%$XX
+%%%%$$$XXXXXHXXHX$$++/::::::=====-=;:::::::=:=====--===--:;/+%%$$%++;;+$%%%$$
%%%$$$$$$XXXXXXHHXX$+%/::::::=======:::;::::=========::=--://+%%XX$%%/:+$$%%$$
%$$$$$$$$$XXXXXXHH@H$%;:::::===:::==:::;::==-========;:=--=:++%$$$$XH+:+$%%%%%
%%%%%%$$$$XX$XXXHHH@X%/;::::===:::==:::::==--========;:==-=;++%%$$$HH+:+$%%%%%
%++%%%%%$$$XXXXXHXH@X%+/;:::===:=====::::==--========::==-:;%+%%%$$HH+:+$%%%%%
%+++++%%%$$$$$XXHX$HH$$$+;:==:====-=::=::----==--=:=======;+%+%+$%$XX;=+%$%%%+
%%+++%%%%%$$XXXXXX$H@X%$+;:=::===---::=:=---==:-==:==:====/%%++%$$XXX:,/%$%%%+
%%%++++%%+%%$XXXXHXXHH$$+/;/+====-=======---==:=-=::=:;=-:%$++%$%$H@X..:%%%%++
%++++++%++%+$$XXXXX$@@XX%++%;============---==:=--::=;/;=;%%++%$+$XM$..=%%%%++
/++%%++%++/;%%$XXX$%XM@X$%%+;;:===-==:===--==:::::=:;;++:/$$%%%%$X$X;:;+++++++
//+%%%%%+//;+%%$$XX%$M@H%%%/;+:=;=--=;:=-==-=;:=:::;;/++:/%$$%%%$$$%=/$++%%%++
///++%%%%+//+++$$$X%%@@X+%%+%+=:/:===;:=-===:::=:;/;:++/:+$X%%%$$$X;-%$/%%%%%%
%++++%%%%%+++++%$$H+/@H$;++%X+//;===;;========--;/;:;X%/;XX%%$%%$$H,:%+++%%%%%
%+/++++%%%%++++%$$H++@H$;++%X+//=:==;;==:=:===--;;;/%@$%+X$%$$$$$XX-+++%+%%%%$
%+/;//+++%+%+++%%$H%%XHX+++//+/;::::::=:::;:=:;-:%%XH@H$$%$$$%XXXX;%%+%+%%%%$$
%+/;;///+++++++%%$H%$XXX%+;:;+/:::;;::=::;/:=:/-=XXHH@X$%$$$%%$HX%:X%%++%%%%$X
%%+;////+++++++%$$HXX$XH%;--=%+:::;;::=:;/+:==+-=@$XH@X$%$$%%%$HX+;H%%+%%%%$XH
$%$///++++//++%$$XXXHXXH/-,--%%;;;;:;:::;%+--:- =MXXHHX%%++++%XH/;$@$%%%%%$%XH
$%%+/+++++//+++%%$$XHH$H%--=-//:;/::/;:::+;,-=. =@@HHHX$%++++%HH/+X@X$%$$$$%$X
$$%%%++++++++++%%$$$H@$$$//:----:/:=/;:;;=-,.-. :@HHHXX$$%++%$XH:%XHH$$$$$$%$$
$$%%%+++++++++%%%%%$@H%$$%+=-,,,=:==+:://,,=-, ;@HHHX$%$%%%$XHH:%XXHHXX$$$%%%
%$$%%++++++++%+%%%%$H@$$XX/,.,--,,,:%;:%=,.$/, .;@HHHX$%%$$$XXX%/%$$XMM@X$$X%%
+$$%+%+%%++%%%%%%%%$@@$%XX;,.-==-.,=+::+=,.$;, .;HXHHX$%%$$$$XX+/%$XXMM@XXXX$%