$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%>):,:-::-;;*)?=%$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%=%!~:,^!,.....''',~*?&?!~^:;?&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&%=:^~,.',^!!:;:--~~~^,..,-~~:;-^-)%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?;'`'.^-:*)>+>>+++)++*;-:;;*>+)*:^,!%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&+*~''^-:*>+??=%%=======>)++)>??==>);:^;%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&**^.~!+>??%%%%%&&&&&&&&=>?>+>?=%&%=?>*-,!%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+*^~:*>=%&&&$$$&&&$&&&$$&??>)>>?&&&&%%?+!~.!%&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>-~-*>=%&$####$$$&&$&&$&&%>>+>>>=%&&&&%=?+*~'>>>&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&?>;~:*+?=%&$$####$$&%=%=%%%&=?>?>>>=%%&&%%%%?+:^,.,!&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&>:~,!+?==%%%%%%%%&&$%????===&=?==?%???=%%%$$&=>*!;:~^>&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=;^,:+=%%&$$$$$$&%=?>?>???==&$%?=?=?>=>??=&&&&%?>>>)!-~>+=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>:~!>=&$$######$$&%?>++>?%%%&$%=>>+>??>>?%&&&&%%%==?+;^~;*&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)~)?%&$$########$&%?>+>=%%&$&&%=?>+++>>?==%&&&&&&&%=+*:,'~>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&?*^;>=&&$$$######$&%?>>>=&&$###$$&%?>+++?=?=%&$$$$&&%=?>):^^:&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$&);-;)>=&&$########$&=???=%&&######$&&=?>+)+>?=%$$$$&&&&%=>)!,^?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?:;~!>%&$####@###$$&=>+++=&&$#@####$$&==>+>)+>?==%&$$$$&&%=?)~.)?%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>:,:>%$###@@####$$&%=?>>?%&&$#######$%??=?))++++?=&$$$$$$&%=):^-)>&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&-;+%&###@@###$$$$$$$%==&$&&######$$$$=>>>=))++>?%&$$$$$$&&=?):-+?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%:!?%$#@@####$#####$=>>=&$%&######$&&%&?+++?+++>%$#######$$%=>!^:?%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%!;+?&@#####$$###@#$%=?>=&%?%&$##$$$&==?=>+>+?+++?$#######$$&%>:..-?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&*;!+&#@@###$####@#$&&%>?%?+)+>=&$&==&%?>+>+>>>>++>?&$$$$##$&%=+!~.,%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?!;)=#@@###$###@@#$$$&=?>);--:;)?%&=>?==>++>++??>+>>?%$$$$$$&%=>);..>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&%)!!>$########@@@###$$%?*;--~~~-:*>%%=>>??+)+>+>=>>+?=&&$###$&&%=>!-,)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=*;)%##$#$###@@@####$%>);:-~~~^^~-!>=%?>>?=+++?>?=>+?=%$####$$&&=?+!~;&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&>!!>&#$$$##@@@@####&%>);:--~~~^^^^-!>=%?>>??>+>=?%?>>%%$####$$$&%=>*~!?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&>!*?$$$$$##@@@###$&%>)!::--~~^^^,^^-*>=%??>??>>?====>%%&$##$#$$$&%?*^^*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&>!+%&$&$#@@@@###$&%>)*;::--~~~^^^,^^:)>=%=>?=???%=====&&$$#####$&%?!^':$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%&+!>&$%$##@@@@###$%?+)!;::--~~~^^,,,,~;+?=%=>?=?==%%=%=&$$$###$$$&%?*~,~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%&)*?&%%$#@@@@@##$%=>+*!;::--~~^^^,,,,,~!+?=%=?====%%&%%%$#######$&%?):,;&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%*)=%=&$@@@@@##$&=>+)!!;:::--~~^^,,,..,~!>?=%==%=%%%$%&&$#####$$&&%?+;-~&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&=)+%?%&#@@@@##$$%?>)*!!;:::--~~^^,,....,~*>?%%==%%%&&&&&$#######$&%=>*;,>%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&=)>=?%$@@@@@##$%=>+)*!!;;::--~~^^,,.....,-)>=%%=%&&&&$&$&#######$$&%?);.*?=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?)>?=&##@@@@#$&=?+))*!!;;::---~~^^,..''..,-)>=%%%&$&&$&$&#@@#####$&%?)!,,!==&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?)>>=$#@@@@##$%?>+))*!!!;;::---~~^^,,...,^~*>=%&%&$$$$$$$#@@@@##$$&%?+!^-:;&%&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?)>>%$#@@@###&=?>+))***!;;;:::---~~~~-;*)>>?%$$$&&$$$$$$$$##@####$$&=+;.!+:*&%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=+>?&#@@@@@@#$&=?>++))**!!;;;;;::;*+?=%%=?>++=&$$&$#$$$$$$#######$&%?):,)+*;+&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%)+=$##@@@@@@###$&=?+++)**!;;!!)>=&&&&%=?+)**+=&$$$$#$#$$$$#####$$%>+);.!?+!;?$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$%++=$##@@@@#$$#####$%=>>+)!!!*+=%&&&&&&%%%==??=&&$$$#$#$$$#$####$>~^;+:^+>>!:+&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&+>%##@@@@@#$$$$#####$%=>+*!!)?=%%&&$$&&&&==%%&&&$$$#$#$$&$#$##$+*>?*;:~;?>);)?&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$&+>&##@@@@@#######@@@#$&=+!;;!+?=%&$$$$#@%##$&&&&$$$#$#$#&=##$$=>>)?=!;-->?+!*=&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$&+>$##@@@@@@@@#@@@#@@##$%+;-~-!+?%&$$==%##$%=%&%&&&$###$$&>$#&%>):~:>!*;;?>>!!%=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$&>?$$###@@@@@$&##@#@####%):^,~:!)>%&%?>==%?)+>+>=%%&$##$#$>%$%>*-,,^*!+**>=+*!==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$&>?&&###@#@@#&%$$#######&)-,.^~:-!+?=?>>>+++)*;)>?=&$###$$??%?>)*-^^;:>)>>&>*)>=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$&?>=&$#######&%%%%%%&&$$%*-,,^~~-:!>?==?>++)!-~:)>?%&$#$$$=?=)*%&=!-::>>?>&=*)>=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$&???&$$#$$#$#$&%%==%%&$&%*-,,^^^~~-;*))+)*!-^^,^:)>%&$$$$$%>>!:&%%>:-!>)>>%%))>=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$?=>%&$$&$$$$$&%=??=%&&&%!-,,^^^^~~--:::-~^^,,,.^;+=&$$$$&%>>!-+>=+--+>)>?==))+%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$%=>%%&$&&$&%=?>>>??=%%&=!-,,^^^,,^^^~~~~^^,,,,.,~*=%$$$$&%>>!!!*+;~;=>>?==?)**=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$&$=>?%%&%%&%=?>++>>??=%&=!-,^^^,,,,,,^^^^^,,,,,^^^:>%&$&$&%?+!*;:--:+==%=?=?+**=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$&$%+?%%%==%=?>>++>>?==%&?!~^~~^^,,,,,^^^^^^,,,^^^^-+%%$&&&=?>!;~-;;;==&&=???+*)?&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$&$&>?%%==>==??>>>>>?=%%%>;~~~~~^^^^^,^^^^^^^^^^^^~-*=%$$&&=?+:~-;:-?%%&$%??>>))?&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$&??====)?%=?>>>>??=%&>):~^~~~~~-~~^^^^^^^^^^^~~--!>%&&&&>?)-~---)&%&$$%?>>+))?%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$&&$$??===?)>=%=??>??==%?+*:~.,~~~~::-~~^^^^^~~~~~~--;>=%&&%>?*-~~-!%%&$$$&=>>+)+==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$$$$$&$$$??=?=?+)?%%=????==%+?)!:~~~~~-:;:--~~~~~-~-----:;>=%&&%>?!--:!%%%%$$$&%>>+)>==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$$$$&$$$=?=?==>!>=%======%%>==>)**!:::;;::--~~~~~~----::;+?%%%=>?>))?&&%&%%$#$&=>+++==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%&&&&&%%&$$$&$$$$&=???=>)+?%%====%%&&$&%==%&%?+;--------~~----::::+>=%==?=$#&&&$&&&%%#$$&>+))==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%&&%%%&$$$$$$$$%?>?=?>*>=%%%%%%%%$##$&%%==>:^^~~~---------:::::)>?==??=#$&&$#&%&$=&#$%?+*)=%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%===&&$$$$$$$&%>?=??*+?=%%%%%%%&$&&%%+-~,,,,^^^~~~------:::-:*>?==??=$&&$#@&%&$&=&$%?+*)=%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&%%%==%=%&$$$$$$$$&?>=??>*+=%%%%%%%&&%?)**^...,,,,^^^~~-------:-:*+>???=%&&&#@@#%%&$&&&%>+)*?=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%======%&$$$$$$$$&%>???%;)>=%%%%%%%%?!-:;^.....,,^^^~~~------:::*++???=&$$&#@@#$&&&$%&%?+))+%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%=?===?=&&&$$$$$$$$&????&**+?%%%%%%%=?+*!!;-^,..,^~~~~~-------:::*))>>?=$#$$##@#$$$&&%%%?++++?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&%???=??=&&&$$$$$$$$&%???%>!)>=%%%%&$&&%=?>>+)*;~~-;;:------::::::**)>>?=$#$###@@#$$#&&%%=+))+?&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%=?=?>?=%&&&$$$$$$$$&%??=&!*+?%$%%%&###$&&&%%==?+)+>);::--::::::;**)>?=%$$$#@$@@#$$@#%%%=+++*=%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&%%==>??=&&&$$$$$$$$&&=??&+!+>==>>>+>$@###$$$#&%%=>?>*;:::::::::;**)>?=%$$#$#$###$$#@&%==>+>)+&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&%%=?>>?=&&&$&$$$$$$$$%??&>;>+**)))+>%#@#$&=>);:;-~-;!;::::::;;;!**+>?=&&$##$$####$#@#%==>+>)+=&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%?>>=&&&&&$$$$$$$&&>*!)>>+:-*>??=&&?+)*!-~:::-~~-::::::;;;;!**)>+?=&&$##$$$###&###%==>+++>?&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&=>>%&&&&$$$$$$&&+**>++))))!)?=%$&?>))*****!:-~~-::::;;;;;!*)+>*+?=&$$##&$&###$$$#%=?>>)?+>&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&%>+%&&&&$$$&&>*!+>++)))+>??=&&&$&%??>>>>+)!:----::;;;;;!!*)>>!!>>%$$####&&$##$#&#%==>++?+>=$&$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&>+=&&$$$$=*!)>+)))++>>?=%&%==%&$$$&&&%=>)!::---::;;;!!*)+??*:*>)&$#####&%&##$##&%==>++>>>=&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&=+%&&&%)!*>++)))+>>?=%&$=+>?=%&$$$&%=>+*!:----:::;;!!*)>=?*::)>*&$$#$###&&##$##&===>++=+>=&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&=>&&>*!>>+)))++>??=%&$$$&)+>?%%&%=>);:-~~~~---::;!!*)+?=?);:;++:##$&=$##$&$#$##$===>>+?>>=&$&$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%=?>=?>+)))+>>?==%$&=&&$$&++?=%=?+*!:-~^^~~--::;!*)+?=%?);:-)*)~###&?+###&$$#$#&===>>++?>=$$&$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&%+**>?>)++>??=%&&$&&=%$$$$&++?==?+*!;:-~~~--::;!)+?%&%>)!:-:**!^%##%*-$@@$$$$$$%=???>)>%>%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=++!*>???==&$$$&&&$=%&$$$$&>>?==>+)*!;:::::;!*+?%&%=>)!;:-!:):~>#$?;~%@@$$$$&%%==??>)=%>&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&%?+)?>%=%&$$$$$$%&&%%&$$$$$%*>=%=?>+)*!!!!!*+?%&&=?+)!;:-:!;!-~)$?+!-)#@$$$$&%%===>++&==&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#&=??%$$$$$$$$$$&&&&%$$$$$?%)?=%&%%=?>>+++>=&$&%?>+)*!::-;:;:-:+=>+!:;$#$$&&%%=%?=>+?&?%&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$%&$%$$$&=$#+?%%&&&&&&%%%&$$&%?>++)*!;::-;-:-:*?>>>*!;?#$&&&%%%%=>>+%%?&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&%$&%=##@?>&&%%&&$$$$#$$%=?>+))*!;;::::--:*?>>??+*!*$$&%&%%%==>+?%=%&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&?&##@@%+%&%%%&$$$$$&%?>++)***!;:::::-:*?>>???>+**?&&%%%=%??>>?%=&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&?$#@@@@&*%&&%%&$$$$&%?>+))***!;;::::::*>>>>????>*!*%&%%%===>>>===$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&=###@@@@#*=&&%%&&$$&%=>+))***!!;;:::::)>>>??????>+!!+%%%==?+?>>==&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$==##@@@@@@@*=&&&&&&$&%=?>+)****!;;::::;>>>>>>?????>>)!!+%==?>?=>??%$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?%###@@@@@@@)?&&&&&&&&%=>+))***!!;;;::!>>>>>>>>?????>+*;:>==?==?>?%&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&>&####@@@@@@@>>%&$&&&&%=?>+)))**!!;;;;*?>>>>>>>>?????>+*;:!)=?=????&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%>$$####@@@@@@@?>%&&&&&&%=?>+)))**!;;;;+?>>>>>>>>>>>????>*;!!:)==?=>&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&>?&$$####@@@@@@@%?%&&&&&%%??>+)))**!;;!>?>>>+>>>>>>>>>???>>)*;;?==?==&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&=?>>>!?%&$$####@@@@@@@&=%&&&&&%=?>>+++)*!!;*??>+)))))+>>>>>>>??>>>+*??====%%&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+*>?+!)=%%&$$###@@@@@@##$=%&%&%%==?>>+++)*!!)=?>>+)))))+++>>>>?>>???>=>!!*))?=&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=>>;-,'^+==%%&&$###@@@@@@##$%%%%%%%=?>>>+++)**>=???>>>+++++>>>>>??????>?)*);.````'^-!)=&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&>>+;,```;=====%&&$$##@@@@@###$%%======?>>>>>+)>==??????>>>+>>>>>>???????=+>+*;~,,.''''~)!^-*>=&$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&=*~~)*^''`'+##%?=%%&&$$###@@@####$&%=??????>>>>>>===?>>>>???>>>>>>>>>??????%>?>+)*!;::---!+~!=$###&%$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&>~'.;?;^^~-~+@@@@?>=%%&&$##@@@####$&&%?>+>??>>>>>?$@#%>>))+>>>>>>>>>>>??=???&???>>++))***!)+!?$$&%>*)>%$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&?:^;!+=;;!*))?$@@@@$??%%&&$$#@@####$&&&%?+)+>?>>>??&#@@@%*+*)+>???>>>????=??=$=?=??>>>++++)+++%&=>!^'```.!?=&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&++?>;!%))>>?=%$#@@@@$?=%%&&$#@####$$&%%%=>)*)+>>>???&=#@@@>*)*)+>????????=??=&%>=??????>>>>>>>=%??>)!-,.~:^^-;*>=$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%!?+::>%??==%%&$#@@@@@@%=%%&&$$$&&&&%=??==?+*!*)+>>??=??$@@@@++)*)>>??????=??=&&=?==??????>?>?>>%=??>>>)*);!?=?>))+=&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%;?);+=%%=%%%%&$##@@@@@@&%%%&&&%=????>>+>>?>)!;!)+>???%==&#@@@#++))+>>????=?>%&&%>===?????????>+===???>>>++==?>>>)*;;+&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&*>=?=&%%%%&&&&$#@#@@@@@@&%%%&&==>>++))))+++)*;:;*+>?==&%&&$@@@@#+>+)+>???=?>%%%$=?==??????????>>%==????>>?=>>>>>>>>>?==&$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>+&%%&&%%%&&&&&$@@@@@@@@#&%%%&=??>+))********!::!)+?=%%$%&&$#@@@@$+?>)+>?=?>%%%&$??=???????????>?===??=>>=>>+++>>>>>>+))=$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$%)=&&&&%&%&&&&&&#@@@@@###$%%%&&=?>>+)****!!!!!;:;*+>?==&&%%%%$#@@@@$>>?>?=?>%%%%$&>==??????????>+===???>??+)**))+>>>>>+!;!&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&+?&$&$&&%&&&&&&$@@@##$###$%%%$%==>>+))***!!;;;;;!)>?===%%===%&&##@@@#?>===>=%=%&$%>=??????????=>+%==??+?=+*!!!!*))++>>>>+**&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$?+%$&&&%&&&&&&&&#@#%)>%$##&%%&&%==>>++)***!;;;;;!*+?====%==??=%&$###@@#%??+=%=%%&$?>=???????????>>===?>?=>)!!;!!!!*)+++>>>>)+&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$&)=&$&$&&&&&&&&%$##$;;?&$$$%%&&%==?>>++))*!!!;;!!*+?===%%%????=%&$$###@@@&>%%=%%%%$?>=???????????>>===?>%>+*!;;;!!!!*))+>>>>))>&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$??&&$$$&&&&&&&%&###)-)=&$$$%&&%%=??>>++))**!!!!*)+>?===%?>>>>=%&&&&&&$##@$&===%%%%&>?=???????????+?===>%?>)!!!!!!!!;!!*)+>>>+*!?$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$&>%&$$$&&&&&&&&%$##=-!?%&&&&%$%%=???+>++))***!**)+>?===%>?)++>=%%%%&%%=%$&%=======%&>===??????????+===>%=?+*!!!**!!;;!!*))+>>>>)*&$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$=?&$$$$&&&&&&&%$##$!:>=%%%&%&%%=??>>+++)))*****)+>?===%%>+))+?%%%&&%%==============&+===??????????+===>%?>))**)***!;;;!!*)++>>>>+>$$$$$
$$$$$$$$$$$$$$$$$$$$$$$&&?%&$$#$&&&&&&&&##$>:+=%===?&&%=??>>>+++))*****)+>??==%%??!>)+%%%&&%=============???&+===??????????+==?%=?>+))))++*!;;;;;*))++>>>>+%$$$$
$$$$$$$$$$$$$$$$$$$$$$$&==&$$##&&&&&&&%###%!*?%%?>??&=$%=????+))))***))++>?=%&&=>*++)%%&&%%%=====????????>>>&+===??????????+%=?%=?>+++++>>)!;!!!*))))+>>>>>>&$$$
$$$$$$$$$$$$$$$$$$$$$$$%+%$$$##&&&&&&%$##$>!+=%>+>+$=%%&&=??=>??>>>>>>??===%%&%>++?)%%&&%%======??>>>>>>>+)+&>====???????=?+%=%%=?>>>>>>>>)*!*)))**!*)+>+>+>?$$$
$$$$$$$$$$$$$$$$$$$$$$&)?&$$###&&&&&&&##$%**=%>)>*%?&%===%%%=?????????===%&&&%>?)=+%%%%%%%====??>>+)))))))))&>?===?????????+%?&==??>>>???>+))))))*!!**++>>>>>=$$
$$$$$$$$$$$$$$$$$$$$$$>+%&$$##$&&&&&%##$&?!>=);+*==%%=====?=%=%%%%%%%%%%%%%%&+=+=>=%%%%%====??>>+))*)+++++>>&>?===?????????+%=%%=????????>>>++++)*!!!*)++>>>>+%$
$$$$$$$$$$$$$$$$$$$$$%)=&$$##$%%%&&%$@$&%))>;:+*==%%===?????==?????======%%%>=>=?=%%%%%====??>+))))))+++>>?=$?>====????????+%%%%==???==?????>>++*!!!!!*)+>>>++)=
$$$$$$$$$$$$$$$$$$$$$>?%&$##$&$$&%&&@#&%>*)::>+>==%==???????????????=====%%=?====&%%%%===??>++)****)++++++>?$=>==??????????>%%%%==========???>>)*!!!!!*!)+++)***
$$$$$$$$$$$$$$$$$$$$&?&$$$#$%=%%&&&#@$%?)!-!>>>==%==?????????????????===%%=?%%=?&%%%%===??>+)****))++++)))+?&=>%????????>=?>=&%%=====%====??>>+)*!*!*****)+>>+>>
$$$$$$$$$$$$$$$$$$$$%&$$$$#&&&%%&&$@#%?+!;)??+%?%==????????????=?????===%%>%=%?%%%%%===??>+)****)+++>+)**+?=$%>??%=???>??=?>%$%%%%%%%%%%==??>++))*)******)+>?=%%
$$$$$$$$$$$$$$$$$$$$%&$$$#$%&$$$&&@@$?+*!>==)%?%==?????????????======%%%%>%=%?%%%%====?>++*****)++++++*!*+?=$&>>????==%=???>%$&%%&&&&%%%==??>+++++)))****)+?%&&&
$$$$$$$$$$$$$$$$$$$&&&&$$#&&%%%&$#@#=>)*>=?+===%=????????????????=====%%>%=%==%%%%===??>))****))++++)*!!*+?=&$>>>??>??=??>>>&$&&&&&&&%%===??>???>>>>++))**>%%%%%
$$$$$$$$$$$$$$$$$$&?&&&$$#$&&&$#$@@&>+)>=?>>%=%=??????????????????====%=?%%=?%%%%===??++)****)++++)**!;;!)?=%#>>>????????>?>$$$&&$$&&%%===?======??>>++)*)?==???
$$$$$$$$$$$$$$$$$%;)%&&$##$$$$$##@#?+*>??>>%?%=??????????????????====%%>%=%?%%%====??>))***))++++)**!;;!!)>=&#?>>????????>>>$$$$$$$&&%%=%%%%%%%===?>>+)))+????>)
$$$$$$$$$$$$$$$$%,,:&$$######@@#@@%>*>??>>%=%=???????????????????===%%>%=%=?%%%===??>))**))++>>>>++)***))+?%&#=>%=%%%%%%%>+>#$$$$#$$&%%%%&&&&%%==?>>+)*)>???????
$$$$$$$$$$$$$$$$~`'*######$$$###@$>*>?>>>?%==???????????????????====%=====>%%%====?>+)**)++>??>>+)*;;;!;!*+?%$&??+++++++??+>##$$##$&&&&&&&&&&&%==>>+)*>?========
$$$$$$$$$$$$$$$&-^+#@@####$&&$$#@?*>?>>??%%%=???????????????????===%&>%==??%%====?>+)))+>>??>+))*;;;;!;!!!)=%&$=%======?=?++######$&&&$$$$&&&%%=?>+)+?==========
$$$$$$$$$$$$$$$$&$##@@@####$&$#@=*>>????%===???????????????????===%&?%===+%%%===??>+)++>>?>>+++++)*!;;;!*)>=&$$%%%%%=%==%?>>######$$$$$$$$$&&%%=?+)>===????????=
$$$$$$$$$$$$$$$$$$#####@@##$$##&)>???>?=%==???????????????????===%%=?===??%%%%==?>>>>>???>>>>>+)*))++))*!*+=&$#&&???==??=?>?######$$$$$$$$&&%%%=?)+++++))))++>>>
$$$$$$$$$$$$$$$$??$$####@@#$$##>>??>+?=%===???????????????????===%&?%===+%%%%===???????????>>++))**!)++>+++?%&#$$>>>>>>+?=>&#@#@######$$$&&&%%%%%?))++))))))))++
$$$$$$$$$$$$$$$&+)%$$######$$#&>>>)+?%%%===?????????????????====%%&=%==??%%%%===?=>===??????>++)**))****))>=&$###??????>%=?$#@@@######$$&&&%%&&$$$$%?+)))++>>>>>
$$$$$$$$$$$$$$$&&&&$#$#####$$#=>>++=%%%%%=??????????????????===%%&=%===>%%%%====???=??==??????>>>>++))+)++*+=$###&%%%=====?@#@@@######$&&&&&$$$####$$$&=>+>>>>>>
$$$$$$$$$$$$$&+)&$$$$#########>>+>%&&&&?==????????????????====%%&&>&===?%%%======?=?)!!!+>+>>>>+++>>?????>>>=&#@@@#@####$==#@@@@#@@##$$&&&$$$$$$$&&%%%%%&&$$$&&&
$$$$$$$$$$$$$*',;+=%$########$>>?%&&&%%%===?????????????======%%&&%%==?%%%%%====%?%&?>?=+=?=?>???>+>>+++>===%&#@##$#####%?=#@@@@@@##$$$$##$$$&&%%%%===&$$$$#####
$$$$$$$$$$$?-'''^;>%#########&>>%&&&&&=%=====?????????=======%%&$?&%==?%%%%%====%=%%%&%&%=???=??>?>=?>??>>>??&$##$=======?=$@@@@@@########$$&&%%%%=%&$$&&%%%&&$#
$$$$$$$$$$&;?&$$####@@@@@@@@#=>=&&&&&&=%========?==========%%%&&$=&=%==%%%%%%==============?>++)))+>?=?>?===?=&##$======??=$#@@@@########$$&&&%%%%&$$&&%??>>>??=
$$$$$$$$$$>;$@@@@@#####@@@@@#??%&&&&&%%%=================%%%%%&&&%&%%=%%%%%%%====??>>>>>>??=====?>>>+)+>?===%=%##$=========$#@@@@########$$&&&%&&$$&%%=?>++)+>??
$$$$$$$$$%++%###@@@@@@@@#@@@#?%&&&&&$%&%%===============%%%%&&&$&%%%%=&%%%%%%%===??>>+++)+))*++>>?=???==??>>=%?$##%========$#@@@@@######$$$&&&&&&&&%==??>+>>+))>
$$$$$$$$&+=&?$#######@@@@@@@&=%&&$$&&&%%%%%===========%%%%%%&&$$%&%%%%&%%%%%%%====??>>>>+++>+>>>>+)+>>??====??&$##%%=%====%$#@@@@@@####$$$$&&$&&&%%==?>>>)*)>%$$
$$$$$$$$)?=$$&##########@@@@%=&$$$$&&%%%%%%%%%===%==%%%%%%&&&$$$=&%%%%%%%%%%%%%==?????>>>>>>>>>>>>??????>?==%%=&##&%%%%%==%$#@@@@@@###$$$$$$$&&%=====?>++=&$$%>)