++++++++++%%??????**????**??????**??????**????????++++??++++??++++++??**??????????$$??????++????++++++++++++????%%??%%????%%????**????++??++??++????**??**????%%??%%??%%??%%????++??++??++??++????$$??$$??$$??$$??$$??$$??$$??$$??%%??%%??$$++??$$??++++++??++??++++**??++**++++??++??++++++++++,,11PPVV\\??++??%%??%%??%%??%%??%%??**??++??++$$??$$++$$++$$++**++++++++
++??++??++????**??????**????**????++??**????++++++??++++????**??$$??$$????**??$$??????**????++????++??++??++%%??++????%%????$$??????++??????????$$????????%%??????$$????%%??++??????%%????$$??$$??????++????**??????$$????++??++??**??**????%%??++????????++??++??**??++$$????++??++??++++,,++++++??++++++++++????%%??++??++??$$??++??**??$$??++++++++++++++++++++++OO22
??++++++++??**????++????**????**????????????**??????$$++++++??????++++$$??????????**????**??$$??$$??$$??++??????++$$??$$??++++++++++++++++++++++??++$$??$$????$$????????????????%%??????????++++++++++++++++++++%%**??++??++??????%%????$$????**??**??**??**????$$??++$$??$$??$$????$$??%%??++??++++++++++++++++%%??%%??%%????++??**??**%%??$$VVOOVVOOVVUUPPUUPPVVVVVVVV
++++++++++????$$????$$??????**??++??++??++????++**??????++++++**??%%11++??$$??$$????$$????++??????++??????$$??**????%%??%%??????????????++??++++++++++++,,++UU,,VVOO22OOVV11VV++11VV++PPUU++??????????????????????**??$$++++++++????$$????++??++??++??**????%%??++????%%??%%??**??%%??**??**%%????????????%%++++++??**????%%??%%??%%??%%??%%??VVVVVV22VVVVVVVVVVVVVVVVVV
++++++++++**????$$??????%%????????????**??%%??????%%??%%????++++++????VV$$??????$$????**??????$$????$$??++??++??++??%%????%%??%%??++??++????????????????$$????????????????????$$????????????%%??%%??++++**??++??++????????????????%%??$$??$$????$$????????$$??%%??%%??$$????++??????$$??$$??????++++++++++++????++++????++??++??++??%%??++??++VVVVVVVVVVVVVV22VVVVVV22VV
++++++??++??$$????**??????$$??%%??$$????++????**??????**??%%??++++++**,,++??%%??????$$????++??++??++????$$????++??????$$????%%??%%??????++++??$$??++??????$$??++????++??++??++??**??**??%%????++????PP++++22++++++++%%??++??++??%%????????%%??%%????$$??$$??????%%??$$??$$????**??++??++????++++++++++++++,,VV++++++++%%??%%??++??++??$$??$$++VVVVVVPP22VV22VVPP22VVPPVV
++++++++++????$$??????**????%%??????$$??????++????%%????????++????++++++++??????++????????$$??++????%%??????**????%%??%%??++????????**????++VV++++++OO++++??PP++++++++++??++??????$$????????$$??????**??????%%??%%????????++??????$$??**????**??$$????++,,++++%%??%%??%%????$$??????++????++++??**????%%??**++++??++++??++??**??**??++??**????VVPP22VV,,VVPP22VVVV,,VV22
++++++++++??????$$??**????**????**??????++????%%????++??$$????$$????**++++??%%????%%??++??++????%%????%%??$$??**????++??**??$$??$$??**??$$++??++++??++??$$??++++++++,,++????**??$$????$$??++??++??$$,,++++UU++++++++++++????**??++????%%??$$??????%%????**??????++????**??++??%%??++????++??**??**??$$??%%????$$++++22++????%%??++??++??%%??++VVVVVVVVVV22VVVV,,VVVVVVPP
??++++++++++??$$??????++????++????++??$$??$$????**??$$????$$????**????VV++????%%??????$$??????++????$$??%%??????$$??++????????????????????????????????$$????++??????**??%%??$$????%%????**??????????????**??????%%??%%++??%%??????++????????$$??%%??**????%%**??++??++????**????$$????%%$$??%%??%%????$$??**????++++++++??%%????++??++??++??++VV22VV,,VVVV,,VVVVVVPP22VV
++++??++++??????$$??++????????**??????$$????$$??????$$??????%%????$$??++????%%????%%??????$$??$$??%%??++??%%??%%??????%%??OO++,,UU,,++++,,++OO++++OO++++++++++++++++++%%??%%??$$????$$????**??**%%??VV++,,++++++++++++??++??%%??$$????$$??**??**??????**%%????$$??$$??**++??++??%%??++????**????$$??$$??$$??**????++%%11$$??++$$??$$??%%??%%++VVVVVVVVVVVVVVVVVV22VVVVVV
??$$++++++????$$????????$$??$$????$$????$$????$$??%%????%%????%%??????++++????++????????**??**????**??????++????++??%%??????++??????????**??????????????????++??++??++++++++++++++OO22VV++????????????++$$??++$$??++++????????????++??++??????++??**????++11??**??**??%%??%%??%%????%%????%%??%%??%%????**????%%??++??++??$$??%%??++????$$??++VV,,VVVVPPVVVVPPVVVVVVVVVV
??++??++++??$$????$$??????????**????++????%%????++????++????%%????%%??%%??%%????%%??++??????++??????**??????%%??++??**??$$????$$??%%??%%????$$??**??%%**??%%????$$????????????%%??????????OO++22++++++++++%%??++??$$??$$??%%??$$????????%%??%%??????++??++??++??++%%**??**??%%??%%????%%??**????????%%????$$??**??++**++%%????**??++??++????VVVVVVVV22VVVVVVVVVVVVPP22VV
%%??$$++++$$????%%????%%??$$????$$????$$????**????**????**??????++????++????%%????????$$??$$????$$??$$??$$??$$??++????????$$??????$$????++??++????++????**????$$??$$??$$??%%$$??????%%??%%????????**????????%%??%%++??++++++++++$$??++??$$????%%??$$??$$????%%??++??%%??%%++??%%??%%??%%????**%%??%%??%%??**??????++??++??++$$??++??????++??11PP22VVPPVV,,VVVV,,VVVVVVVV
??????++++??????????$$??%%????$$????$$??$$????**????**????**????$$??**??**????$$??$$??????$$??$$??????$$??????%%++**%%??%%??**??$$????$$??????++??????%%????$$??????$$????????$$??$$??????$$??$$????++??++??????????$$????????????????????**????%%??????**????++??%%??++????%%??????%%??%%??????++????**????**??$$??**??%%??++%%??%%**??**??VVVVOOVV22VVVVVVVVVVVV,,VVVV
??%%????++%%??$$??++????????$$????**??????$$????$$????**????????$$????%%????$$????????$$????$$??$$++??++??**%%??++??++++??**??**????%%??%%??$$??**??**??**??++??++??++??++??%%??**????$$??**????++????%%????$$??%%????????%%??++??$$??$$??++??%%??????$$++++++??++++$$??$$++++**++$$????**??**??$$??$$????**??$$??%%++++??**????**??????++??++VV22VVVVPPVVVVVVPPVVVVVVVV
??++????**??????????$$??%%??????++????$$????%%????$$????$$??$$????$$????**??????$$??????++????$$????????%%????%%++$$??$$??**??**??$$??$$??$$????%%??%%??%%??$$??$$??$$??%%??++????%%??$$????**????$$????**????++??$$??**????%%??????$$????**????%%??++??++**??**++??++????$$????????++??++??%%????**??**????%%????**??**??**%%++??++$$??$$??VVVVPPVV22VVVV,,VV22VV22PP22
??$$??**??????$$??%%??????**??$$??++??????**??$$????**??$$????++????$$????**??++????$$????$$????++??**????++??%%????++??**??**??%%??%%????**++??**%%??**??**??$$??$$++??++%%??%%++**??++%%++??++$$??**++??++??++????**??$$????**??**??++????**????++????++++????++%%??%%**??$$??$$????$$????**??**??????**????%%????**??$$??????++????$$????PPVV11PPUU,,VVVVVVVVVVVVVVVV
$$????++??$$????$$????**????**??????%%??++??????$$????????%%????%%????$$????????%%????%%????%%????++??++??%%??++??++??**????%%??**??**??**????**????%%??++??%%??%%????++??**??**????++??++??++**??++??++??$$++??++++??++??%%**??**??++??**??**??????++??++++??++**??**??++????$$??**????++????$$??++**????++????++??++??**??++??++??%%??%%??VV22VVVV,,VVVV,,VV,,VVPP22VV
????**????????%%????$$????**????$$????**??????$$????%%??%%??$$????$$????%%??$$????$$??????%%????**????$$????????%%**????%%??++??++??**??**??**??++??++??%%??++??++??++??++??++??**??$$??**??**????%%??%%??++??%%????++??%%??????%%????**??**????%%++??$$????$$??++%%??**??**????++????$$??%%??%%??????++??++??++????++??++??++??++??++??%%??VVVV,,VVVV22OOVVVVVVVV22PPVV
??%%??%%??%%????%%????$$??????++????$$????$$????%%????$$??????**????**????$$??**????$$??**??**??$$??$$??$$??$$??**??**??**??$$??$$??%%??%%??++$$??%%??++??++??**??$$??**??++??%%??%%??++??++??++%%??%%??**??++??++%%??++??++$$??$$??$$??$$??$$??++????++??++??++??++??%%??$$++??????**????**????$$??%%??++????$$??++$$??**??%%??**??**??++??VVUUVV++VVPP22VVPP22UUVV22UU
++????++????$$????$$??????++????**????$$??$$??$$????$$????**????%%????$$??????????$$??????????$$??????**????$$????**??**??$$??$$??$$??$$??$$????++??$$??**??**??**??**??**??++??++??++??++??++????**??**??**??**????%%??%%????**??++??**??**??????**??**????++??++++++??**??++??++??%%??**??$$??%%??++??????**????%%??**??++??++??++??$$??**VVVV,,VV++VVUU,,UUVV,,VVPPVV
??++????++????**????**??++????**??$$??????++????++??????%%??++????%%????$$??++??**????++??$$????**??**??**????$$++??++??++??%%????**??**??**??**%%??%%??%%**??$$??$$++??++??**++??++**??++++??++$$??$$??%%??++??**++??**??$$++??%%??++??++??++??%%????**??**??++??%%??$$??%%**??**%%??++??**????%%????%%**????++%%??$$??$$??%%??++??++??$$??VVVVUUVVVVVV,,VVVVVVPPVV22PP
????$$????$$??????**????????$$??????++??**??++????**??$$??????**??????$$????$$??????%%????%%??$$??**????????$$????**??**??$$??%%????++??++??++**??**??++????$$??%%????**??**????$$????++??$$??**??++??%%??++??**????%%??%%????++??++??++????$$??$$??$$??$$????**%%??%%??%%??%%??$$??++??++??++??$$??%%????**%%++??**??$$??%%??++??++??++??++VVVVVV,,VVVVVVVV,,VVVVVVVVVV
$$????$$????%%??**????**??$$????$$????++??????**??????%%??**????**??$$????$$????**????$$????$$????%%??%%**??**??%%????++??????**??**????$$??????**??**??**??**??????++????$$??????$$????????????**??????%%????%%??%%????**??++??++??++??$$????++??++??++??++??++??$$??%%??++??++??++??++??++??**??%%??++%%????$$??++??**??**??++%%??++$$??++VVWWVVVVVVVVVVVVVVVVVVVVVVVV
??++??????**??????%%??%%??????$$??????????**??????%%????????$$????????**??????%%????$$????$$??????**????++????$$????$$??**??**??++????**??**??++??$$????++??++??%%**????++%%??$$??$$??%%??%%**%%??++??++????$$??$$??$$??%%????++??++??++??++??++??++????$$??$$??$$??**??**??++??++??++??++??$$??%%??++??**??%%++??%%??%%++??++??++??++??%%++VVWWVVWWVVWWWWVVWWVVWWVVWWVV
????++??++????$$??**??**??**??++%%**++**??++++++++??++%%??++??%%??++??%%??$$++??%%++??**??**??++????**????**????$$????$$??????????%%**????++????++????**????????????**??????%%????%%??%%????????**????$$??$$????++??++??++??++??++??++??**??**????$$??$$??$$??++**%%??**??++**??$$%%??%%??%%??$$??$$++??%%??++??++**??**??**??%%??++$$??++++++++++++++++++OO++PP11++PP11
??**??????++??**????????++??%%??++??++??++**%%??**%%++??++%%++++++%%**++++++??++??$$??++??$$??$$??$$??%%????**????%%????++??++??%%????%%??$$??$$??$$????%%??**??$$??$$??$$????%%??%%??????$$??++????**????**??$$????????$$????++????**????++??++??++??++??++??++??**++??**++??$$++??++++??++**??++++??%%??++$$??%%??%%++??++%%??%%++??**%%??%%??%%??%%??%%????????**????
????**??**??????**??++??++??++++??**??**++??++**++??++%%**??**++??++??%%??++++++%%++++$$++??$$??$$??%%??%%**??$$??$$??$$??$$??$$??**??**????%%????%%??%%????**??**????$$??$$????++??++$$??$$??$$??$$??$$??$$??$$++$$++??**%%**??++++??**++??**++%%**++++++++++++++??$$++++??**??%%??$$??**??%%??%%??%%++??++??++**??++??++??**++??$$++??**++VV,,UU22VV++VV++PP11OO++++UU
??++??????**??**??????++??++**++++++++++++++++++++++++++++++++++++++++++++VV++++++++++++++++++++++**++**++??**++++++$$++**??%%++**??$$??**%%??%%++??$$??$$++??$$??$$??**??**??$$??????**????$$??$$??$$??$$????++??????++????$$??**??%%??%%**??%%??++??++??++**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++VVVVVVVVVVVVVVVVVVVVVV22VVVVVV
??????$$????????$$??$$??++??++++**++**++$$++**%%++**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++**??++++%%++++++++++++++++++++++++++++++++11++++++++OO++++++UU,,OO22++++++OO++++++++++++++PP++++++++OO++++++++++++++++++++++++++++++++++++++++++VV++VV++UU++++++++++++++++++++++++,,++++++++++++++++++++++++,,++++VV22PP22VVVVVVVVVVVVVVWWVVVVVVVVVVVVVV
??**????++??++????$$????**??**??**??**??++??%%??**??**%%??%%**%%**%%**++**%%**??**++??%%??++**++%%++++++++++++++++++%%??++**++**++$$++++++**++**++**++++++++++++++++++++++++++++**++++++++++++++++++++++++**++++++++++++++++++++++++++++++++OO++++++OO++UU++VV22OO22UU22PPVVVVVVVVVVVVVVVVVVVVVVVVVVVV\\WWVVWWVVWWWWVVWWWW??WW??WW??VV????]]{{]]WW????WW??]]??{{]]??WW??
??????%%????++++**??**??**??**++%%**++++**++**%%**++%%**++++++++++++++%%**++++%%**??++**++%%++++**++++++++**++++++**++++++++++++++++++**%%++++%%++++++OO++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++++++++++OO++++11OO++++11,,++11++++++++++++++++++++++++++++++++++++++++++++++,,++,,++,,UU,,UU++VVOO22OO22OO22VV,,VV,,VVPP22VVPP22PPVV22VV22VVVVVVVVVV
++??$$??????++??**??**????++$$??**++??++??%%??**%%??$$??%%$$$$$$**$$$$++**%%****++%%**%%++$$++$$??++%%**++++++++++++++++++**++++++??++++++++++++??**++++++++++++++OO++++++++++++++**++++OO++++++11++++OO++++UU++OO11++++11++11++11++11,,11++++11++PP++22++22++VV++PP++VV++++11,,++,,++22++,,++++11PP11OO++++++++++++++++++++++++++++++++++++++OO22OO,,OOVV,,OOPP,,++,,++
??????$$??**??????++????**??++$$++**++**%%**++**%%$$++$$??%%**%%**$$++??$$**%%$$++$$??$$??$$??%%**++++++++**++++++++++++%%++++++++++$$++**++++++**++++++++OOOO++OO++++++++++++++++++++++++OO++11++NNOO++++++++OO++PPOOOO++OO++OOOOOO++OO++OO11OO++VV++OOPPOOUU++PP11++++++VV++OOUU,,UUOO,,UUOO++OO++++++OOUUPP11PP11PP11OO++OO++++OO++OO++11++++++++++++**++++++++++++++
????$$??????**??++++++????$$++++**??%%++**++++%%**++++++++++%%**++++%%%%++++**++++++++%%**++$$++$$++++++++++++++++OO++++++++++++$$++++**%%++$$%%OO$$**HH++$$******NN++OOOO++++++++++++OO++++++++OO++++OO++OO++++OO++OO++OO++OO++OO++OO++OO++OO++OO++OO++OO++++OO++PP++PP11OO++OO++OOOO++OOOO++OOOO++OO++++OO++OO++OOOO++OOUUOO++UU++OO22++OO++++OO++++++++++++++++OO++OO
??++????$$??????++++??++??++**??++++**++%%++**++%%++OO$$OOOO**++%%**OO??++++%%OO**++**++**%%**++%%++++**++++++++**++++++++**++++++%%OO++$$++++$$++**II++**OO%%++II**II++++UU++++UU++++++++++UU++++++++11++11++NN%%HH++II**%%OO%%NN%%HH++HH%%OO%%$$%%**OO++OO++OO11++11,,11PP++++OOII++OO++++OO++OO++++OO++++OO++OO++++HH++++OO++OO++OO++OO++OO++OO11OO22OO++OOUU++UU++11
++????$$????$$??**??**++??++++**++%%++$$++++??++++OO++++**OO%%++++OO++$$PP$$OOOO$$OO++$$++**++OO**++++++++++++OO++++++++++++++**++**%%**++++++VV%%++UUPP%%OOUUOONNOO++OOOO++++++++++++OO++++++OO++22++++++OO%%++OONNIINN++zzHHOO$$OO++OO??PP**zzzzzzzz$$OO$$OOOOOO22OO++OO11OOII++NNII**NNOO++HH++HHVVOO$$NNOOOO++NN**OOOO%%OO++HH++%%++++**OO**++%%++$$OO**OO++OO++++OO
????$$????**????++++??++**??**++++++**++++**++++$$++$$++%%??++++**++$$++**++++++++%%**%%++$$$$++**++++++++++++++++++++++++++++++$$++**++OO**$$++**PPOOVV++++OO,,**II**OO++OO++++OO++++++++++++++++OO++++OO11++HHOO$$OO%%NN$$OOHH++zz$$zzOOzz%%zzUU++VVNNOOOO%%OO11,,OO22++PP++OONNII**OO%%??IIOONNOOzzOOOOOOOO**IIOOIIOOzz++zzOOzzzz??yyIIzz$$OOOOOOOOOO++HHIINN++++OO++
$$????++????????%%++??++??++%%??$$??++**++??++**++++++++++++++++++++++++%%++++??**++++++++++++**??++**++**++++%%OO++++++++**++++++??++%%OO++++OO%%UU%%**OO%%++NN%%**++OO++++++++**++++++++**++OO++++OO++++OOHH++NN%%OONNOO**NNOOzzPPOOVVOOVVOOzz++OOzz$$%%++HHVV++OO22OO++OO++OO%%OOOO$$NNPPNN%%OO++VVOONN$$OOIIOO$$OOOOVVVVzz**??++$$zz++zz$$VV++zzPPVVzz++**II++OO11++
????????%%??%%??++**??++??++**++**++++????**????????????$$$$$$??$$??**%%**%%??**%%$$++%%**++%%++**++%%++++++++++++++++++++++++++++++++**++++++++OO$$++++++OOOO++OOOO++++++OO11++++++++++++++++++++++OO11++,,++++OO++HH++$$OO%%**%%**++$$++%%++$$OO$$**OO++NN++OO++22++OO22++++++NNOO%%OOOO**++OO$$OO++%%OO**OO++++OO**OOOO%%VV++PPzz??zz++{{zz??OOzzzz??OO**II**++OO,,OO
%%??%%????++????++++??++??++??++++%%VV????????%%????**$$$$**HHNN$$$$????$$**HHNNHHNN$$$$$$$$HH$$HH$$$$??????????++++OO++++++++++$$++$$%%++$$$$$$**%%++**++%%**??**%%??**++++++++++++OO++++**++++++++++++++++++++++OO++++++++++++OO++++OO++UUOO++OO++OO++OO++OO,,11PP++VV++VVUU++++OO++OO++OO++++OO++OO++OO++++++OO++OO++++++++OO++%%++$$II**OO**++OO%%++OO$$OO**PP++UU++
??????%%????%%??++++??++??++++**%%??++??%%??++????$$$$$$??????????OO**$$NN??????????HHzz??????????zzOO$$??$$??$$%%++++++++**++??**%%OOOOOO++++$$??**%%??????????$$????$$++++++OO++++++++OO??%%**????**$$++$$++??**??**??++$$++++??**????++??++??++++??++**++??**++??++++**++%%**++++++OO++OO++OO++OO++++++OO++++++NN++++OOOOOOOOOOUUOOUUOOOOOO++OO++OO++OOOO++$$OO++++OO
??++????%%??????%%++??++??**??++++**++????$$??$$??$$**??ssssyyyy????$$%%??ssssyyyyOO$$OOyyss??ssttss$$??++??????**++++++++++PP??++UUzzzzzzttyyVV$$**??**++PPUU,,++++++$$++++++++++OO++++++??**??UUOOOOOOOO++$$$$++??$$**OOOONNOOOO**$$$$**????$$??%%??$$????%%??????$$$$HH$$**$$????OO22++++OO++UU++,,OO++,,**$$$$$$$$$$$$$$$$++??%%??%%??????$$++??++OO++OOOO++PP11++++
????++??????++%%++????++$$++%%**++++**????**??$$??$$yy??HH$$$$$$????$$ss??rr$$????$$????$$NN??NN$$??$$**????++??++++++**++++++$$++++NNHHNNOONNttOO????**PP++++++++++OOOO++++++++OO++OO++++????PPzzzzzzyyzzsszz????$$OOzz??zz??zzzztt++??%%??VVVVVVVVVVVVOO++$$??$$OO??????{{zzzz++$$11++OOVV++OO++OO11++VV++$$zz????????zzyy++??++??UUVVVVVV11OO++$$??++++++++UU++OO++++
??%%????%%??????++++??++????++++??%%++????$$??++??$$yy??$$**??$$??yy$$zz??HH$$**??**$$??$$yy??HH??$$????$$++??$$++++++++++++++++++++$$??++$$OOyyOO$$??++++++??**??$$ssss**++++++++++++++++??++UU++NN$$OO$$yyzz$$**??zzzzNN++OO%%rr??OO??**++VV++11++++++zzzz??++NN??yyssVVsszz++$$++++VV++++++++11++OO,,++OOzzzzsszzVVsssszz++%%??OOzzOO++OO22OOUUOO$$22++UU++++,,++++++
??????%%????$$++%%??$$++??++$$++++++**??????++????$$????$$%%??OO??yy$$????$$$$????$$??$$??zz??$$**??**????$$????++++**++++++++??UU++++++????UUtt++%%??++UU??**????$$zzNNOO++++++**OO++OO,,??++PP??$$??**$$zzVV$$??$$??ss??????$$ss{{$$????++UU??????$$OOzzOO$$??sszz$$$$??$$??OO$$??OO++++++++++++OO11OO11%%??yy$$??$$$$OO??**++$$UUzz$$++????OOzz$$++++++++PPOO++UU%%++
??$$????$$??????++++????$$++++??%%++%%??%%??$$??++????????$$??OO??HH$$??ss$$$$????$$??$$$$zzyy$$??++????$$%%??$$++++++++++++++**,,++$$????$$zzzz$$%%??OO11??++??++$$??HH++++++OO11++++++VV??++PP**??++??$$zzOO++??**zzOO$$**??????zz??++??VVPP????++??UU??$$++??zz??$$++????$$++??++,,11++++++++,,11,,++PP**??tt$$????$$zz??$$%%$$??zz$$$$??$$OOzzHH**++++UU++++VV++++++
????**??????$$++++????++??++++%%??**++????**??????**zzNN????$$OO??$$HH??NN??++??%%????$$$$yyHH$$????%%??????%%??++++++++++++++++++++OO**%%$$??tt$$????VV++$$??**??NNttHHNN++++++++++++++OO??VV++??????$$OO??OO$$??OO??HH????**????yy$$????UU++$$%%??$$zz??$$$$????zz$$????%%??++$$++OOUU,,OO++++VVOO++11VV++??OO**??++$$zzzz$$??$${{yy$$??%%??zzss$$++UU++++%%22++OO??UU
$$??????$$??????++++$$????++++**++++%%??$$??%%??$$OO??ss$$??$$yy??$$rr??OO$$??$$??**????NN??OO%%??????**??%%????++++**++++++++$$OOyytt????zzOO++$$++$$++11,,11++OO%%UU$$++++11++++++++++11??VVOOyyttyyssUU????++??VVzzOO++**++**??OO**$$++VV**%%??**????VV$$??++??ss$$HH$$$$NN++??++22++PPOO11OO++++OO++UUPP??**$$????$$??yy$$??OO??OO$$$$$$$$zzUU$$++++++++**++PP++++PP
??$$??%%????++++++??????$$++$$++??**++??????**??$$OO??HH$$??$$??zzHHrr??NN$$++????????$$OO??NN??$$??$$??++????%%++++OO**++++$$PPyyOOOOOOOOOOOO++$$??++++PPUU++OO++NNOO$$OO++++++++NN++++++++OO??zz??zzzztt++$$??$$OOOOzzVVVVVVOOOO$$????%%VVVVVVVVVVOOOO**%%????OO????????zzOO$$??++OO++11++PP++11,,++OOVV$$zzPPVVVVUUOOVVHH++??**zzzzzz??zzyyssOO??++++++**PP++++VV$$VV
$$??????$$??++**++++??**??++++++**++++??????????$$yy??$$$$??$$??yy$$????$$??$$??**%%??$$yy??$$$$????**????**????**++%%++++++**VVss$$$$$$$$++++**%%**++++++??%%????zzzz$$++++11++++++++OO++++??HH$$??$$??OO11??++$$??zz??$$??$$sszz$$$$++11OO++++??**OO??OO??%%++UUOOOO++OOOOzzOO$$++22OOVV++11PP++OO11++OOzzyyOOOO++++OOzz$$++??OO++zzVVUUVVsszz$$??UU++++OO11,,UU++$$zz
????++??????$$??++??????++**??**%%++$$??$$??$$??$$zzyyllNNOOrr??UU$$????ssOOOOOO$$????$$????$$????$$??**????????++++++++**OO$$zzUU$$??????++++**??++++OO$$??$$??HHzzOO$$++++++++++OO++++++UUzzHH??????$$VV++????**??OO????++??zzzz$$????PP++??????$$ss??%%%%??OO22????++??HH??NN??22PP++++11++,,UU,,++OOUUzzzz??$$??$$yyzz**%%??PPUU??$$??$$OO??%%$$,,++UUUU,,OO11++zzzz
??%%??????%%??++++??$$????%%**++??++++????$$??**??**??????????HH??$$$$??????????NN??$$????OO$$??**??++??%%??%%??++++**++++OO%%zzOO$$$$????22++??++??++22??$$??$$HHyyOO??UU++++PP++++,,OO**zzzz$$????%%++UU%%??$$OO??++????%%$$zzUU$$%%??UU++$$????????zz$$????OO11??++??**OOyy$$$$++22OOUU++OOOO++++++OOVVzzOO%%??++$$zzzz$$++??22++$$??++$$yyzz$$??UU++$$++++OO++++??ss
????++??$$????++++$$????**++??**%%++%%??%%??$$????$$**ssNNssOO$$??**??NNOONNNNHH$$????$$++$$$$????**??$$??%%????++++++++**++OOzzHH$$$$$$$$OO++++??$$VV++$$??$$??rrtt**$$++++++11++OO++11%%zzyy$$$$$$??OOPP??++??yyzz$$$$??$$$$??OO$$??**VV++????$$????zz$$????VVOO$$??$$??yyss$$%%22OO++**????NN11PP++OOzzzzOO??%%$$$$??OO$$++??VV++$$??$$????yy$$??++++++++VV++11OOzzyy
++????????????$$++????%%??++++++**++**%%????????$$????$$??$$??$$**%%????$$??$$??$$??$$????$$????????**??%%????$$++++**++??OO++OOzzzz??yyzzOO**++++**++++++++OO++**zz??++++OO++++++11++OO++zzttyyttzzyyOOUU++,,??zzttyysszzyyss??++++$$,,UU++++++++++??OO++$$++UUOOOONNOONNssyy$$$$OO11++UU????~~++11++++zzzzHHNN**HHOOzzOO++??++VV++??++??++zzOO$$??PP++**++++VV++OOzzss
??**??$$??$$??++++$$????**++++$$??$$??????%%??????++????????????$$??????????????????$$????????++??**??????$$????++%%++++++++$$OOOOyyssyyyyOO$$++++??++VVUU,,11OOOO??$$**++++++++OO++++VV++OOzzzzzzzzzzzz??++11%%++??zz??zz??zzNN++UU++++VVVVVVVVUUVVUUOOOO??$$VV??zz????zztt++$$??++PP11**????NNOOPP++OOVVyy????????yyzzOOOO++++PPUUVVVV++OOzzOO++??++OO++++++PP++VVzztt
??????$$????%%++++????????$$++++**++++++++**++++++**++++++++++??****++++**++%%++**++$$++++**??**??++??++$$??%%$$++++++**++++**$$??$$??$$$$??++??**??++$$??$$++????$$????OO++++++++++++VV++??????$$$$$$$$**??%%??$$++$$**$$$$++$$????$$??$$++??**??**%%??**??++++OOOO++OOOO$$$$??$$11OO++OO++**UU++++22++OOPPUUOOUUOOPP**??++++??UUPP++OO11++++??$$??11++VVUUOO11++OOzzzz
??**????????++++++??$$??$$++++$$++++$$++%%++++**++%%++**%%**$$++++??%%++%%**++**++++++++**%%++++++++++++++++++++++$$++++**++++??++++11,,++++++++++++++++++++++UU++++,,++++++OO++++++++++++OO++11,,++++++++++**%%++??++??++????++??**??**????++??$$????++????$$??????$$????++??????22++OO++++PP++PPUU++OOVV11++++$$**$$%%++??%%++????$$????$$??$$????++,,++++11PP++++$$**
????**??++????++++%%????$$??++++??**??**++**%%??++**++%%**++++++++**%%++**++**++%%++**%%++++**++++**++**++++++**++++++%%++++**++**++++++++++++++++++++++++++++++11++++++++++++++11OO++OO++,,++OO++++OO,,++++++UU++11++++UU++PP11,,++++++OO++11OO++VVOO11++22++++++++++PP11++,,++++++VV++++,,11PP++,,++++22++++UU++++++++++++++++++++++++++++++++++**++++++OO++++OO11++++
??????$$????++++????**??**++$$++**%%++++++++??++++%%++++??$$++%%**++++%%??++??**++??++**++??++++%%++++++++**++++++++++**++%%??++$$**??%%??$$??$$??%%??$$??%%**%%??$$++++$$++??++??%%??++++**++$$??**++++%%++++++++++++++++++++++OO++++22++++,,++++OO,,11,,UU++VV++UU++11,,UU++VV++UU++PPUU++++UU22OOUU11OO,,VV,,OO22PP11OO11OO11,,UU22OOUU,,++++++OO++++++OO22PP11,,++22
??$$??????$$??++++%%??????++++++++++%%++$$++++%%++**++**++++??++++$$++++++$$++%%++++**%%++**++++++**++**++??++%%++**++++++++**++++??++??++??++**??%%????$$++??????**??$$??????**??**%%????????**??**????????????$$??%%????$$????$$??%%??%%**??++??%%????**??$$??$$++++%%++++++++++??++**??**++++%%??++%%??++$$++++%%++++++++++??++%%**++%%++++++UU++PPVV++OO,,UU,,OOVV++
????%%??????**++++????++??++**??**++++++++??++++++++++??**++**%%++++**++**++**++**%%++**++++%%**++%%++++++++**++**++++++++++%%++??%%??%%**??++PPVVVVVV++??**VVVVVV++**%%++OO22++++??VVPP11++VV??++??$$11++%%??++++++??++++??++??++%%??OO??$$??$$??$$??$$????++??%%??**??????**??++$$??????%%????++????????++??$$??**????????%%??%%????**??++++++PP11OO++VV++OO22OO22OO22
%%??????%%????%%++??$$????%%++++??++%%++$$++**++??%%**++%%**++++??%%++$$??**++%%++++**++%%**++++++**++??**++++++%%++++**%%**++**%%??%%??%%??++VV++++++VV**++VV??**++%%??++++++++OO++++++VVVV22$$zz++++VV{{**??VV++????VVVVVV??????VVVV{{VV++????++VV{{\\VVPP??++VVVV????VV++??%%??$$++VVVVVVVV++++22$$++22%%**??UU,,$$++22PP11VV??**??++??++++11++PP++,,++++VV++,,OO,,++
++??%%????$$??++++??????%%**++$$**++**++**++++%%++++++++++++++??++++**++++++++++??**++%%++??++**++++++++++++++**++++++++++++++%%??$$**??++??++VV????$$WW%%++++VVVV++$$??++PPUUPP11??????,,??$$%%11%%**VV++WW++VV++**++VV$$zz++$$??++VV??++++VV??VVVV??++++VV++++VVUUVV??VV++%%??%%??++++VV22++++UUVV??VVVVVV??OOVVVV??PPVV++++++**??**??**??++++PP11PP11++,,++VV++22UU,,
??++????++????++++++??$$??++**??++++++%%++**++**++**++$$++**++**++**++++**%%++**++%%++**++**++%%++%%++++**++%%++++++++++**++++++**??**??**??++VVVV++22zz??++VV$$??++??%%VV%%????,,**??**VV++??%%UU??++VV??VV++VV++??VVVV,,VV22$$??++VV$$??++VV??VV++??????VV++++VV++zz++VV++??%%??%%??$$++PP++??,,OO??zz++VV%%]]++????UUVVVVVV$$??$$????%%??OO11++OO++++11++++11PP++VV++
++????%%????++++++????????++++++$$++**++++++%%++++++++++++++++++++++%%++++++++++++++++??%%++++??**++**++++++++**++%%++++++**++++??++??++??**??++++++PP++??++++VV,,UU%%??++11VVPP++??++??VV??$$++VV??++VV??++VVVV++VVVV++++++VV++%%++????++22zz??VV??VVzz\\{{??22VV??,,??VVOO%%??**??**??VVVV??%%\\PP????++VV\\PP++WW??VVPP++++,,++??++????**,,PP++VV,,VV++,,OO++,,UU,,++
??++??????++??++++??$$??%%??%%??++??++??++++++++++%%**++??++$$++++++**++++??++++%%++++++++++++++++++++++++++++++++++++++++++++++++++**++??$$++??++????**??++????$$????++??%%????%%??%%??%%??++????++++??%%++????++??**??**??**??**????++??**??????$$??**????%%++++++??++PP++??++??++??**++VV??**,,11??VV??%%VV??++VV??11++VVVVVV++??++??%%??PP11PP,,UU++,,OO22PP11PP++VV
++??%%??????++++++$$????$$????++**%%**++++**++++??++??$$%%??%%??%%??++++++%%**??**++++????????????**??++++$$??????**????++??????%%??%%??++????$$??**??%%??$$??**??++??++??++??%%??%%????**??%%**??**??++????++$$??%%??%%++++??**??$$++??++??**++$$??++%%??++++$$??++++++??++++??++??++%%??%%??++??++++??++%%??++%%??++$$??%%??%%??%%??$$??++VVPP22UUPP22VV22PPUUPP22OO++
??++????$$??$$++++??$$????%%++??++++??%%??++%%++++++++++++++++++++++++++**++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%??++++++++++++%%++??%%++??%%++??%%??$$++**++%%??%%??%%??++??++??%%??$$++**??++??++??++??++??++????**????++??????**??++??????**????$$??++??????**????%%??%%??$$??$$++??++++++??%%++++++++++++++++++++++++OOVVOO22OOVVPPUUPPVVVVVVVVVV
**????**????++++++??????$$++++++++??++**++++++??++++**++++++**++++**%%++++++$$++++**++++++++++++++++++++++++++++++++++++++++++??**++++++??++++++**++++++++++**++++++++++++??%%++++++++++++++++%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++??++++++??++??++++**??**++++??%%??++$$++++++**++++++++??%%++++++??++++++%%++++++
??%%????$$????++++??$$????++++++UU,,UU,,11++++PP++++++++++++++OO++,,UU++++,,11,,++,,++,,++++OO++++++++++++++++++++++++++++++++++++++++++++++??++++??++++++++++??++++++++++++++++??**++++++++++??++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO++OO11++VV++PP++PP11++,,++
%%????%%????$$++++????$$??++++++++++++++OO,,11++VV++VV++,,UU++,,UU++,,OOVVOO,,OOVV++VVOO22VV22PP11PP11PP11VVPP22PP22OO22OO22OO22OO22OO22OOVVOO22OO22OO++++++++VV++++++++++++UUWWVVPP++++11++++VV++++11++++22++++++++++++++++++++++OO,,OO++++++++++OO++++11++++++++++++++++++++++++++++++OO++++OO++++++++++++++++++++++++++11++++++++++++++22PP11VV,,VV++VV11PP11PPUU++++
**??$$????????++??%%????++??++++++++++++??$$++++??++++++++++++**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO++++++++++++++++++++++++11OO++++++++11PP++++++++++11++PP++++++++++OO11++OO++UU,,11OO11PP11OO11OO22++++PP++VV,,UU,,11,,++VVPPPP11PPUU22OO22OO22UU,,UU++UU++OO++++VV++VVOOVVVVVVPPVV22VVVVPPVV22PP11VV,,VVOO11PPUU22OOVV22OOVVVV22VVVVVV
??%%????%%**++++++????$$??**%%??%%??%%**++++??++++$$??$$++??++%%??++$$++**++**++++**++$$++**++++++++**++++%%++++++++++++$$++++++++++**++++**++$$++++++++++++%%++++++++++++++++++++++++PP++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++++++++++++++11++++++OO++++++++++++++++++++++++++++++++OO++++++++++++++++++++++++++++++++
++++++++??????$$??$$++??++??++++**++++??%%**++%%**++++++$$++++**++++**++??++++??++%%??++??%%++++**++%%++++**++**++**%%**??++%%**++++++++**%%++??++??++**%%**++**++++++++++++++++++++++**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO++++++++++++OO++++11OO++PP11OO++++++++++++++++++++++++++OO++++++OO++++++++UU++++++11++++++++++++++++++++++++++++++
**??**????++??++++??????++**%%**??++**%%++++**++++$$++++++++**%%++**%%**++++$$++++**++++**++**++++++++**++++++++??++++++**++**++%%**%%??++**++**++++++++++++++**++++++++++++++++++++++++++++++++++++++++++++OO++OO++++**OO++++OO++++++OO++++++**OO++++**++++++++++++++OO++++++OO++++OO++UU++OOOO++UU++++OO++OO11++OO++11OOUU++PP++PPUU++PP++OO11OOOOVV++OO++++++++OO++++
??**??**????**??**??$$??%%??++++**%%++**%%**%%**%%**%%**$$++??++$$++$$++$$%%**++$$++$$$$%%**%%**%%**++++%%++++**++**++%%**%%++$$++**++$$++$$++%%**%%**$$++$$**%%++$$++**%%**++**++++++++++**++**++**++OO**++++++++**OO++++NN++**++NN++OO**OO**OO++++NN++OO**++++OO++11++++OO++++OO++$$++II++%%++**$$OO****OO**%%NN++NN++++%%OO++++**++II**++OO%%++++$$OO++OO++OO++++++++
**??++??$$????++%%??????++**%%**??++**++++$$++??$$++$$%%**$$%%??$$**$$$$++**$$$$$$++$$++$$$$**%%++++++++**++++++++++++++++**??$$++$$++$$%%**%%**%%**%%++$$++$$++HH++OO$$++++++++++++++$$++++++++++++++++++$$++$$%%++$$%%NN%%++HH++HH++$$++%%++$$HH++HH++OO++11++++++++++11++OO$$OOOOzzzzVVOO??$$OO??HH++OOHHOO**OOOO$$OOOO**OOOOIIOOOO$$OONN++OOOOHH++HH**++++++++OO++++
$$??**????$$??**??**%%??**??**++++$$++%%**++$$VVOO??UUOO??PPUUOOOO%%VV++$$OO++VVOO++OO$$++OO%%**++++**++++++++++++$$++**++%%++**%%**%%OOUUOOPP$$**PPUU$$++OOOOPPNN++$$OO++++++++**++++++++++++**%%++**%%++++NN++zz$$zz**OOOO**II++zzzz$$VVyyVVzz++HH++++OO++++++OO++++++OO++OO++$$zzzzPPzzOOzzPPzzVVOO$$OO%%++HHPPVVOO{{$$??PPOOzzOOVVOOPP++zzUUOOzz**II++OOOO++++++++++
??$$??$$??????%%**??????++++++$$??++++??++$$??OOOOOO++OO$$VV??%%11++OOPP++OO%%++$$++OO11OO++++++++$$++++++++++??++++++++**++$$++$$++$$UU%%??UU%%VVOOVV++**OOVV$$++HH++**++OO++++++++++++**++++++++**OO++OO$$++%%NNzz%%++OOIIUU$$zzVVzz++VVVVPPzz**OO%%OO++++++++++11OO++++++**OO**VVOO++**VV$$??++zz%%OO++NN++%%zzOOOO??$$??OOPPVVOOVVOOzz++zzVVzzVV%%++$$++++++++OO++++
$$??$$????**??++++**$$??%%**%%++++**++%%++**%%11%%UU$$++++PPUUOO++HH++++OO++**OO**%%OO$$**OO$$$$++++++++++**++++++++++++%%++++%%**++$$++++PPOO++OO**++PP$$OO++++**++%%++%%**++++**%%++++++++++++++++++++++++$$NN%%VV**HHOO$$yyOOtt++OOUUOOOONNVV$$NN**++OO++++++OO++++++11++OO++%%HHNNIIOOII++IIIIOOHH**NNIIHHOOOO****OO++OOVVUUOO++OOzzUU$$UU$$$$OO**IIOOOO++++++11OO++
??$$????**????++????????++++**++%%++++**++$$++$$++$$??++%%$$%%**$$**$$++$$++$$++%%++**++%%**++++++++++%%**++++**++**++++**++**++%%**++$$++$$++++$$++%%**++++$$++NN%%++++++++++++++OO++++**++++%%++++++OO++$$OO++**II++%%++++$$++%%OO$$++%%++%%**OO++++OO++++11++++++++++OO++++OONN++%%++**++NN****$$++OO++++OO++OO++PPOOOO%%++++++++%%++%%OO++OO++**OO++%%UU++++++++++++
$$??**????++??++++**??$$??**%%??**++%%++++++++++**++++**??++**++++++++++++??++++++++%%++++%%++++++$$++**++%%++++++++++++++++++++++++$$++**++??++**++++++++%%**++++++**++++++OO++++++++++++++++**++**++**++++++++++++++OO++++++OO**++++++OO++OO++++OO++++++++++++++OO++++++++OO++++++UUOO++OO++++OO++OO++++OO++++++++++PP++PP++OO++++OOOO++OO++++++OO++OOOO++**11++OO++++
??$$??**??????++++??????**++++**%%++??????????????????++??????????**??????$$????????????????????????????????????++++++++++++$$??**??11++11++00++????$$??$$**??$$$$**??$$++**++++++++**++$$??**??**??????**??$$++$$????**??????????$$++**??**????%%??%%??%%**++??++????????**??????++++++++++++PP++++++++++++++**????????????++??++??++??%%??++??**??++++++++++OO++11++**
$$??$$????++??++++%%**??++??%%++??++??????????%%??%%????????$$??????????**??????????????**????????????????%%??++++++%%++++11%%??????????\\??\\[[UU????**??++OO11,,++**??++++++++++++++++++++????\\??????\\22????**??++????????\\\\????++????VVUU222211++**????++??\\????????\\\\??++++++++UU++++++11++++++++????11[[1177UU11??**??**??++++++++++??????++++22++++++++++++
??$$??$$??????++??++????++%%++**++++??**??**%%??**??%%??????????????UU????????????????VV++????????????VV??**????++++++++++++??%%??++??????????11\\??????++++????++????????++++**++++++++++??UU++0011111111\\++**??**\\11111111++11\\??++??1111++++++++11????++??11[[1111111111????++++++22++11[[**++++11++++$$11VV\\??\\[[VVUU??%%??11UU11OO++++??VV++++++++++++++++++%%
$$??%%????%%??++%%++????++**??%%**++????$$????++??$$??$$??UU\\VV\\VV??**??????UU\\UUVV??**??????\\??\\??%%????++++++**++++OO??$$??++**??**????\\[[??**%%++**??**????00VV**++++OO++++++++%%??++++????????UUbb??++??11????????????[[UU????$$22++??++????\\\\??++??[[\\??????????++??++OO++++11??????00++++++++??]]UU????????11\\??++??[[\\????????++[[++++++++OO11++OO++??
????**??$$????++**????$$++++**++**++??%%??$$%%??**????UU??UU$$??????????00??VV??$$??$$??%%??????VV????????++??++++++++++++++++??++++??$$%%++????11??????PP++????**??77\\??OO++++++++++++**++11**??++%%??[[\\????++11????$$??++??bb11**$$??11++??++??????\\??**??~~UU??%%%%**??++??22++++11??????\\++++OO,,**????11??%%%%????VV??????\\UU??++%%??00\\**++UU++++++++11++$$
**??$$????????++++++????++??++++%%++????++??????**??$$]]??**??**????????UU??**$$??$$??%%????UU??++??$$??$$??????++++**++++,,????++**??%%????????11%%??%%++??**??????[[UU**++++**++++++++??++++??????%%??\\[[??++??VV\\??**??%%**\\**??++++++**??++??????UU**??++aa11%%%%++??++++??++++PP++++??11**++,,++++****bb++??++++????11??%%**bb00????++??[[UU??++++??**++++++++++
??%%??%%??$$??%%++??$$??++++**++**++**++??++$$??$$????????????%%??????????????????%%??++??**VV??$$????$$??$$??$$++**++++++OO??%%++??++0011++11??????%%++++????++????\\11++++++++++++++OO??,,11????**??????11??$$??\\VV????????UU\\??++??++VV????$$??????11??++++\\??????????++????OO++++OO,,OO++++++UU++PP??11????++????**\\11??%%++????????????\\11**++++++??++++++++??
%%??%%??????%%??++++????++++++++++%%??????????%%??++??\\????++??????++**UU\\$$??++$$??$$????UU??????++??%%????**++++++++++++++??00\\????????[[??????????++11OO11++++**??**++OO++++++++++**??UU????????\\11??$$????11112211UU++++11????++++,,11OO22++??UU????%%++11????????????**??++OO11++22++PP++PP++++,,??VV22++++11++++\\??$$??11\\1177VV[[0011??++++++??++VV++++++++
??????%%????**++++++????++++++++++++??$$??$$??$$??$$????11$$??%%00????????UU**??$$??%%??$$????11??%%??????**??++++**++**++++++????**??????????11??++??++++????**??????11++++++**++++++++????UU11001111**11??++??**??**++++++++VV\\??**%%++1111,,UU++00????++??++11\\77[[7711\\**??UU++++++++++++11++++UU++++++1111VV,,1111**??++??**11??\\\\[[[[11??++++PP++UU++,,++++??
??$$????$$????++++++++??$$++$$++++++??%%??%%????$$??**??VV??++??????****??[[????%%????++??????VV????%%??++??$$??++++++++++++**++\\??????$$??++????**??++++$$??++??11????++%%++++++++OO++????11????????++++??%%??11??????%%??????22??$$??11++??????????\\??++$$11++????????00bb????,,++11++++11OO++OO++,,++????11????%%??\\\\**??++,,++????????11\\??++++++??%%++11OO??VV
????**??????$$??$$++????++++++**++++????%%??$$??**??UU??**????????????UU??****??**????????UU??**%%??**????????**++++++++++++??22bb????%%????++++??????UU????**????UU\\??++++OO++**++++++**??????++%%??UU++$$??$$[[\\??++??**????++??++++++++??++??????[[??++??UU++??++%%??VV??????++PP++++++OO++++++,,OO11**??00??%%++????11??%%??OO++%%++????VV[[??++11%%++++++++VV??\\
$$????$$??++??++++++????++**++++++++??$$??????**??????????????????????????????????$$??++??VV??????????$$??$$??%%++++++++++++++UU[[??????????22**??$$%%++????++????VV[[??++++++++++++OO++11\\??++??++??11++??++??\\[[????%%??00\\++??$$++11??$$++%%????11??++++11??%%??++??\\77??**++++,,++11++OO22OO++11++++\\??**??$$??bb11??%%++22??++??++??\\UU??++++??++++++++++????
????$$????????++++++????++++??++++++????%%??$$????????????????????11????????????????$$??????????$$??%%????++????++++OO++++++??\\11UU11UU1100++**++%%++11**??**++??UU11??++++++++++++++++[[[[??????**??UU??++????\\11??%%????11\\??????PP++????++??++??**??,,++++????????????11????++OO++++++??++++++++OO,,VV\\??????$$++\\**????++11$$??%%??**[[**??++,,++++++11++11++\\
$$????????$$????++++$$??++++++++++++$$??++????$$++??????????????++??$$????????????++????????VV????%%????$$????$$++++++++++++++++\\????????????++11????++UU,,++++++++??++++++**++++++++++UUVV\\??????\\++++11++??\\UU\\bb??\\\\UU++11??VV11PP11++11++]]++11++++VV\\??????\\VV??++??11++11++++++++++++++11**??11UU11[[1177????++++11++++++++++++VV++??++++UU++OO,,++11++\\
??%%??$$??????++++++????++++$$++$$++????%%??%%????%%**????????????**??$$????????????%%**????$$??++??**%%??$$??**++++++++++++++$$??????????????????++??????**??**??????$$++++++++OO++++++??++++11**1111??%%++??++??11++001111++??++++????UU++++++++++??++??++??221111111111????????PP++++++++++++++++++++11??\\\\\\\\[[\\??++++??%%VV11++11++++??????++++++++11++11++++VV
$$??????**??%%??++++$$??++++++++??++??$$??????++????????$$??**??++??++??????++??**??$$????$$????$$????????????++++++++++++++++++++22UU22++++++++++++**++%%++??++????$$??++++++++++++++++**??**??????????++??++??%%??????????**??????%%**????**??++??++$$??VV??$$??????????$$??++??11++,,OO11++++++UU++,,OO??++??**??????**??++??**????%%????**??????UU++VV++++PP++VV????
??%%??????????++++++????++$$++??++****??%%++**++++++%%++??++??**++%%??%%++**??$$??++++++%%++??++++++**++++++%%??++++++++**++++++++++++??++++++++??++??++++++++++++++++**++++OO++++++++++++++++++++,,++++++++++++++++++,,++++++++++++++++++11++++++++++++++++++++++++++OO,,++++++++OO++++++++OO11++OO++UU,,11,,++,,UU,,++++++++++++++++++++++++11PP++,,++++++++++OO++OO++
????$$??$$??$$??++++%%??++++++++%%??%%++**++++++??++++++++++++??$$??++**++++**++++++%%??**++++**??$$??%%++++++$$++++++++++++++**++??++++++++$$++**++++++??++++++++**++++++++++++**++**++??++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++22OO,,++,,UU++PP++PP11OO22OO22++OO++++++PP++OO22OO++++PP11PP11PP++++11OO11++UU++++11++UU++++OO++++++++++
$$??????$$????++++++????++**??**++++++**??**??**++??$$??$$??**%%??%%**??$$??$$??$$**??**%%??%%++++++++**++??++++++++++++++++++++++++**++++++++++++++++++++++??**????$$????????%%??????%%????????$$??%%??**$$**??++$$++??++++??++++++$$++++++++++$$??$$??$$??$$??$$??++??**??$$????????**??????$$????%%????%%??$$??**??**??$$++++11OO,,++++++++++++++++++,,++11PP11PP++UU
????$$??????$$??++++**??%%**++++**++++++++++++++++++**++++++++++++**++++**++++**++%%++++++++**++**++++++++++++++++++**++++**++++**++++++++++++**++**++%%++++++??%%++++++++++++??++++++++++++??++,,11++++++????**++????**++??++??%%??????%%????????$$??????????++????$$??????????$$??$$??????????%%????++??????????????$$????++++++++++++OO++++++UU++OO11OO++++++++++++++
??%%??$$??????++??$$????++??**%%??++++++++++++++++%%??++**??++++++%%**++++%%??++++**++**%%++++++++++++++++++++++**++++++++++++++++++++++**++++++++++++++**??$$++????++VVVVPPVV++??VVOO22PPVV++%%VV++++++++??VV++++++VV??++VV++++VV++??VVVV++++++VV++{{VV????VV??$$????]]??]]????++]]++**VV??++??++]]VV??VVVV??VV????%%????**??,,OO++UU++++11PP++,,++++++++OO22OO++VV++OO
??$$??????%%????++??**??++**??**++??$$++++**++++**++++%%**++++**++++++??++++++++++++++++++++**++++++++**%%**++**++++++++**++++++++++++++++++++++++++++??++++??$$??$$22PP????++VV%%VV++??++++??++VVVVVVVV??????WWVVVV++??++VVPP11PP??%%VV++{{++++VV????,,VV????$$????++????VV++????VV++%%VV,,VV??{{VVWW??VVPP??++$$??$$??$$??++OO++++,,++OO++11++OO11OO++VV++++++++++11++
????$$??**????$$++$$++??++++**++%%++++??$$++++**++++**++??$$++??++??++$$++++??++++%%??**++++++++**++++++++++++%%++++**++++++++++++++++++++++++++++++**++??++++++??$$++++++++++??++VV++++++UU%%++OO??++%%**??++**%%++zz++++PP??++++$$??VV??UUVV++PP??++++VV??++??++??++??$$WW++%%????++??VV**{{22VV++VV$$VVVVOO22++??++??++??++++++OO++++++++PP++++,,++++++++OO11OO++OO++
??**????????$$??++??++??++$$++++++++**++++$$??++$$??++$$++++++++++++++++++**++++**++++++++++%%++++++$$++++++**++++++++++++++++OO++++++++++**++++++++$$++**++**??$$??++++??**??**%%22??$$??++??++++VVVVVV++++VVVVVVVVPP??++VVVVVVVV++**{{++??VVVVVV??**++VV%%??++??++??++??]]++++??{{++++{{??22zz??OOVV??zzVVVVOO,,$$??$$??$$++OO22++UU++VV++OO11OO11OO11OO++VV++++,,UU,,
????++??$$????**++++**??++??**%%**++++++++++++++++++**++++**%%++**++**??++++++++++++++++**++++++++++++++++++++++++++++%%**++++++++++**++++++++++++++**??**%%??$$??$$??**??%%??%%??$$??$$??$$??**??**????++??????%%????**$$??**%%??$$????**????++++????%%++??++??++%%++??++++$$??$$++????++%%**++??**++??++++++++++????**??**++OO++OO,,++++++VV++PP++++++,,++OO11PP11,,OO
??++??????**????++++++??++$$++??++++??**++**++**++++++++++++**++++++++++++++++++++++**++++++++**++++++++**++++++++++++++++++++++OO++++++++++++OO++++++++$$??$$++%%??++??++??++??++??++$$??**%%??%%??++++??++++++??++$$??++??++??**??$$++??$$**????**??**????%%??%%??$$??$$++??++????++%%++????++??++??**%%**??$$??++??++++??++22++VV++UUVVOO11PP11VVUUVV++UU++VV++VVOO22
??????%%??????**++++++??++++**%%**++%%++++++++??++**++++++++++++++++**%%++**++++**++++++++**++++++++++++++++++**++++**++++++++**++++++OO++++++++++++**++++++++++++++++++++++++++++++++11++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++++++++++++++++++++++++??++++++**??**??++**??++++**??++??**??%%**??$$??%%++++++++++++??++++++++%%++++**++++++$$??**%%
??++????%%??%%??,,++++????????++++++++++++++++++++++??%%??++%%??++$$++++++++++%%??%%**%%**%%++%%**%%**??++$$??%%$$++%%**++$$**++$$**??$$??$$$$++??**,,++**??$$??$$??%%**++++$$++??++**%%++??++++++**++++++**%%++++??++++**++++??++++**++??++++++++++++++++++**++++**??**++++++++++++++**++++**++**++++++++++++++++++OO++++11++++++++++++++++++++++++++++++++++++++OO++++
????++??????????OO++++++??**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO++++++UU++++++OO++++++++++++++++++++++++11++OO
??++????$$??$$??++++++??????++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO++++++11++++++++++++11OO++++OO++11OO++++++
????++??????????++++++??%%**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++++++++++++11++++++++11++++22++,,OO++11++++11++++++++++++++++++++++++++++++11++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++OO22++++++++,,11++11,,++VV++UU++VV11VVOO22++VV++22OO22++VV++22
??$$????$$??%%??++++++????++++++11++UU,,UU++VV++UU,,UU11PP11VVUUPPUU,,UU,,++UU,,UUPP11VVUUPPVVPPVVVV22VV++VV++PP11OO,,OO22++OO++11OO++PP++++,,++11++++++++++++++++++++++++++++++++++++++++++++++++++++++++11++++++,,++++,,11++11++++++++++++,,++++++++++++++++11++++++++,,++,,++11,,++OO,,11,,11++++++++,,++++OO22++VV++++,,OO,,UU++,,++22++OO++,,UU,,++11++VV++VV++22OO
????**????**????++++**????%%++$$++??**??++??**??++++++++++++??++??++++++++++++++++++++++++??++??++++++++++++++++++++++++++++++++++++11++11++UU,,OO,,OO22++22++22++11++11,,11,,UU,,UU++22OO11++22++11,,11++,,11,,1111,,11OO++,,11,,11,,22OO22++UU,,11PP11++VV++,,OO11++22OO11PP11,,UU++11++++UU++PP22++UU++VV,,++,,OO,,++VV++11++,,OO11PP++22,,UUPP11OO22OO22OO,,UU,,UU,,
**????$$??????++++??++??$$??**??%%**++??%%**??**%%??%%??$$??**++$$++????$$??++??++??++%%??++++++**%%**??++**++++++++++**++++++++++++??%%++++%%++++++++%%++++++++++++++++++++++++%%++++++++++++++++++++++++++++++++++OO++++++OO++OO++OO++++++++++++++++++++++++++++++++++++++++++++++++OO++,,++++++++++,,++++++11++++11++++++,,OO++++++++++OO++++++++++++++++++++++++,,++
????**????$$??++$$++??????++++++**++%%**??$$++%%**++%%**%%**++??++**++**++$$++$$**%%**++**%%**%%++**++++++++++**%%??++++++**++$$++**%%**++??++**++$$++**++$$++$$++**++**++**%%++**++%%**%%++$$++**++$$++++**++++++++++++++OO++++++++++++++++OO++++++++++++++++++++OO++++11++++++++++++OO++UU++OO++++++++++OO++++++++OO++++++++++++++++++++++++++++++OO++++++++++++++**++
++??????$$??????++??$$++??++??++%%??++$$++??++**??$$**$$++**%%++**%%**%%$$++$$++**%%**%%**%%**++??++++%%**++??++++++++**??%%**++%%++++++++++++%%**++++++++++**++++**%%++%%++**++++**++++++++**++++++++**%%++**++**++**++++++++++++++++11++++++++UU++++OO++++OO++UU++++++++++OO++OO++OO++OO++++OO++OO++OOOO++OO++OO**++++++++11++++++OO++OO++OO++OO++++OO++OO++++NN++++++
????%%??????%%++??++????**++++$$++++**++++$$++??**%%$$++$$%%**$$%%**$$**$$++$$**%%**%%**$$**%%**++$$++??++++++**++%%++++++**%%****$$$$$$$$**$$++$$++$$**$$$$++HH**%%NN++**++??++%%??++$$++$$++??++++++++**++$$++++**++++OO++++++OO++OO++OO++++++++OO++++NN++++OO++++OO++++++++++++++**%%**$$++$$**$$****$$**NN**OO++NNNN++**NN++NN++++NN++NN++**++NN++**II****++**++NN++
++????**??**??????**++??????++++**%%++$$??**%%**%%**%%**%%**%%**$$++%%$$++$$++$$++$$**%%$$++$$$$**++$$++++**++%%??++++??%%++??%%++$$++++$$++$$**%%**$$++$$++++$$%%NN%%**%%**++**++**++**++++**++++$$++$$++++%%**$$OO$$$$NN$$++$$++$$**II**$$OONN%%**HH**OO**HH**++OO++++++++OO++OO$$OOHHVVzzVVOOPPUU%%OOVVII$$%%OO$$OO%%$$OO%%$$%%NN$$$$**%%$$++HH++$$%%$$NN%%HHOO$$++++
??++??????????++??**??**??++**++++**??++++++**%%**PPUU$$VVzz$$VVOO++OO++OO++++OO++PPOO++OO**%%OO??++++**??++++**++**++++++**%%**$$OO$$$$zzOOVVOO$$++PP**$$PPOOVVOO$$OOOO++$$++$$++++??**++$$++**++++**++**++**IIOO$$OOzz??zzOOzzOOzzOO$$OOOO++HHOOOO++II$$OO$$OO++++++++11++++++++++HH++zzOOPPOOzzzz++zzzz**++NN$$%%NN$$zz$$$$zz$$zzzzzzVVOOzz$$PPOOyyVVVVzz$$++$$OO++++
++????%%??**????$$??++??$$**++??++++++$$++++??$$++OOOOVV$$VV$$UU%%$$VV++++OO++OO$$++$$**OOOO**++$$++$$++++**++++%%++%%**++++++$$OO$$**$$VV????OO++++OO??++$$zzUU%%NN%%$$**++**++++**++$$++++**++%%**%%++++++$$++HH++$$PP??++$${{UUPP++OOVVzz????VVzzzz++UUPPOOOO++OO++++VVVVUUUU$$OO**%%zzUU++OO??OO??++zz%%$$VVOOVVOO$$VV{{??{{$$??????zz++zz$$UUOOVVzzzz??PP**%%OOOO++
????%%??????**????%%??????++$$++++??++++++??++**%%++$$OO$$++%%++UUVV%%**OO++OO++**OO++$$PP??%%OO**++++++++%%++++**++++++++$$++++$$++%%$$++VVVV11++OO++OOPP++PP++HH++NN++++$$++**??**++??**%%++??++++**++**++**%%OO$$????VV????VV????$$VV??VV??????????zz????????++++++??????????VV??$$$$??VVzz????????$$++**{{????????$$??$$$$VV??VVVVzz??????,,VV????$$????????$$OO++++
??%%??????**??????++??$$??++??**++++++++++++++??%%**++%%++$$++**%%$$**%%**%%**%%++$$%%**%%****%%**%%**%%**??**++++++++??++++??**++%%**++++$$++$$++%%++%%++**OO$$++**%%++$$++++**++++**++++**++++$$++$$++++%%++**++????OO$$$$??????UU++%%??????????VV????++??$$**++++++++**????**????++$$??$$??{{$$**$$++++%%????????$$PP????++??????%%VV??????**%%????++%%$$++??$$++++++
????$$??**????**??**????$$++$$++??++??**??**$$%%**%%??$$**%%**$$**%%**++$$++$$++$$++++**++$$++**++++??++++++%%++$$++++++++??++++++**++++$$++++++**++++**++%%**++++II**++++++**%%++**%%++$$++++**??++++++**++++OOOO$$????++VV??????????UU??++??$$$$????**zz??$$++OO++++++????**%%??PP??????????PP??$$++++OO$$??OO$$++++????++OOOO??$$++????++??????OOOO++++$$????++++OO++
++????????++????$$??$$????++??++++++++??$$%%**++$$**??**%%??$$??**$$++$$**++**$$++**$$%%$$++??%%$$??$$++??$$??????++++%%++++VV??????$$????$$????$$??$$??$$????$$????$$??????++**%%++**++++++??????????????$$????????????$$++UU??????????++??????????????VV++??$$??$$????OO++????UU??????VV??VV??????++**++%%UU????????UU++????++zz??$$VV++**??????????UU??????++++++++++
????$$++????++????$$??$$??++%%**??++**++$$**$$++??++$$****$$++OO**++$$??++$$??????$$??$$??%%**????++??$$??**%%++??++**++++++++$$????zz??zzzzzz++??**??????VVVV11++22OO++??++**++++**??%%**++??**??VVVVOOVV++VV????11??++22??]]VV??++++??OO??{{??OO??++++??VV**??++??$$++??zzVVOO??++**VV??????%%++++++++++????++++??????++**++??VV??????????????????VV????++++++++++++++
**????%%??++????$$??$$????++??++**++%%??**++++******$$++$$yy??????????NN**$$$$??????????NN??yyTTNNNN****$$$$??%%??**++++??++++%%11OOUUPPVVUUOOzz**$$??$$??NNOO,,OO++++VV????%%??**%%++**++++%%??VVOOUU,,11++OO??????VV??zz????????zz++??????**VVPP??VVUU??OOVV**%%??OOOO??VVVVVV??$$????{{11????++**++++++++??????++++??++VV++????????????zz??VV??VV??????++++**++++++++
????$$????$$????**??++??$$++%%++**++**$$++$$$$++$$++??$$yy??NNTTUUyy??????**????????????NN??????????????zz??$$++??++$$++++++????OO++????????OOyy$$????++zzOO????????11++??++**++$$++**++**????++UU$$??????$$yyzz????++??UU??????OO??zz????????zzUU????????++VV$$????zzOO??????zz??++????VV????++++++$$++++??????++VV++????++????yy++++??++??**????$$??OO++++++++OO++++++
$$??????$$????$$??++??++????++??%%++%%??%%**++**$$++++**????**$$$$$$????$$zz??TT$$$$$$$$**$$UUNN??yyUUUU$$$$**??**%%??++++++++++,,??$$????$$UUzz$$????OOzz$$????**??++UU??%%++??++++++$$++++??++VV????????$$??yy??????????????????%%yy??????**zzUUVV??++zzVVyy??$$??zzUU??????VVVV++??????VV??????VV++++++zzVV????OO++????????VV????????????????VV++??++??++++++++**++++
??$$??????$$????**??**??$$++$$++**++**$$++++$$$$++%%??$$????$$++++**??~~$$????$$**++++$$**++$$UU??NN$$$$**++$$??$$++++%%**??%%**OO$$????$$??zzzz??????OO??$$??????$$VV++??**++$$++**++**++$$??++UU??++????$$??OO$$????VVOO??**????OO??$$????ss??$$????$$????OO**??$$zzOO??$$????++++????++**$$????**++++++++++??++VV??????????zz++????$$??++$$%%????OOOO$$++++++**++++UU
????%%??$$??????$$??%%????**++??++++$$??**$$++**??++++**??????%%%%UU??TT$$????$$$$??++$$??$$??????$$++$$??**??++??$$++++++**++++22????????$$zzUU??**??VVzz??$$??????UU++%%??++++**??%%**++++??UU,,????????OOzz**$$??$$zzUU????$$??UUzz??++??VV????$$????**zz++%%??++??**????$$??OO++??++++++++OO++++++++**++++**++PP??**??$$++??++????++zzHH??????$$UUOO??++??%%++++++++
??%%??????$$??**??**????$$??**++**++??++$$++++$$**$$**$$??$$**%%??NN??**$$??yy$$??++$$??++$$$$????$$??%%??%%**????++++++++$$++++OOzz??zz??zzUU%%$$????OOVVyyzzzzVVUUOO????++++$$++%%**++??**??PP11UUOOVV++++zz??????++zzOOOOVVOOOOVVzz??**??zzUUOOVVyyUUOOzz**++??++ttzzzz??zzzz++**??++++++++++++++++++++++++??VV++++++++++++zz**????OOVV++++++++$$VV**$$++++++++++++++
%%????%%????$$????%%??%%??$$??%%**++??**??++$$++??++??????**$$**$$????$$NN??**$$++******$$**$$??NN$$**??%%**??++??$$++%%??++++OOUUOOyyyyttUUOO$$??$$++OOUUVVssUUzzOOVV**??++**++++**++**++++??++PPUUPP++11OOUU??$$????OO??zzzzzzUUOO++$$????OOzzzzzzzzyyVVOO??**??++UUyyzzyyzzUUzz++??**++++++OO++++**OO**++++??++VVUUVVPPUUOO++??%%??++PPUUUU++UU++OO$$??++++++++++++++