)))+)++++++++++++))*************)))))))))))))))++++>+++>>++++++++++++>>>>>>>>>++
))))))+++)))+)))*************)****)+??>++>>+))++)++++))+>++++)))))+++++>+>++>+++
++++++++)*))*!***!**********+++>>=%%&$&%%&%=?>>+++)))))++++++)))))++++++++++++++
)+++)))+)))*!!*********)))*>??==%%&&$$$##$$$&&&&%?++)))))))))))))+++++++++++++++
)))))))))**)****)********+>&$&=%%&$$######$$$$$$$$&?+))))****))))++++++++)))++++
)*))))))******))***)))*)>?%&$$%%$$#$#####&&%&&$####&==>+))*)))++++++++++))))))))
))))))))!!!****))**)))))==%$$&&$#$##$$$$$$##$$$#$###$&&?+)))+++++++++++))++++)))
))))+)))!*******)))))))>=&$&$&&$$$$&$&%%&$$##$#$$&$$$$$$?+++++>+>++++++++++>++++
))))))))))))))))))))))+??=&&&$$&%%=>+)))>?%$$$$&&$$&$$$$%?+++++++++++++++++>>+++
))))))))))+))))))))))++>?=%&$%&?+)**!!**)+%$$&%&%&$#####%=+++++++++++++++>>>++++
)))))++++++)***)++++++++>???=?>)*!;;;!*))>%$$&&$$$#######%>+++++++++++++++++++++
)))++++++++***)+++++++++>>>>+++)*!;;!!*+>?%%&$&$$###@#####?+++++)+++++++++++++++
+++++++++++**)++++++++++++>++))+*!*!!*+>>?=&&$$$#$##@@###$%++)))))+++++++++))+++
+++++++++++)*))++++++++++++++))*;!*)++>>?=%&#$###########$%>++++++++++++++++++++
+>>>>>>+++++))))**)++++++++))**)*!*!+>??=&$$########$$####%>++++++++++++++>+++++
+>>++>+++++++++)***)++++)+>)))+>+!!*+>???%$#########$$####&>+++>++++++++++++++++
>>>>>>>>>++>>>++)**++>>>+>>>+>>+>?=>+>>?=?=&###$$#$$######%>++>+++++++++++++++++
%%%%%%%======?)*)+>=%=====%%>=&$$&%%%%??=??=$#####&%%#@###&%=============%======
%%===%%%===%%>)+>====%===%$$=>&$$$%%%&%==?>?%####$&&&$@###&%=%%%=%%%=========%%=
=====?>??====>+>+>?==%%%%%&$)+%&$&%%&%%=???=&$##$&&=%%@##$=?>???==??>=========%=
===?>>))**)+))+++++>?????==?)>??==??>+)+>?=%&$#$&&%>==@##&==??>?=?=%%%%%==??=%%%
%%==%==?)***)?=?>)*+===?===>>??>))+)**)+?=%%&$$%=&&%?&@##%=====%%%=%%===========
========???======>*)==%=%=>)>??>))+>?>>=%=%%%%&==&=?=$##$?====??>++?==????=?????
>>>>>>???>??????>*+>????==>+?>>?+)+>=%%=%===%%%&=?==&###&?=??>+++)**))***)>+++>+
>>>>>??>>???????+)>>>>>>>?%&&&%%)))?%%%====%%%&%>?=&####&===%====?+*!*!**!*!*!**
+>>?+++)*)+>>>??))+++++)))+=$$&?*)+?=%=%%%%%%&&&>=&$####=???%==%%%=+******!!!*!!
=%%%=%==>????>++)))+>++++++?$&=+)+>?==?%&%%%&&&$$&&$###&???==%=====?>+)*!!;;!!!*
===%===%======??+)>???>+))+=&%%====?===%&%&&&$&&&&&$$$$%??????????=?????>+))++++
=====??=====??=?*+??>?>??>=$$&&&&&%?=%=%&&&&$$&&&&&$$$$&$?+>>+++>++>++++)++++++)
==?====??===????+?%===%%%&##$$==%&%=%%%%&&&$$$$&%%&$$&%$#&>>+++)+++>>+++++++++)+
???>??=????????%=%&&&$$$$#$%$&?>??=%%%%%%&$$$$$%==&$&%&##$%>++++)*))++++))+)))))
>>???????????>?=%&$$$$###$?>$#$%%==%&&%&&$$$$$&%=?%??%$##$$?)**!!*!!**)++))**!!)
++++>>>++>>>>>>>==??>=&&%%=%=$#&%%%%&&$$$$$$$&&%??>>=&&$$$$$?)*!!))+))*!!!!;!!!*
>>>>>+>>?>+++++>>>+>?%$%+>%&?$%>?=%&$$$####$$&&=?)>?&&$$$&$$&%>)*++++++*!;!!))))
>>+))*!!***)++>>++>>=&$&?>=&?&&=%%&$$######$&&%?)>?=&$$&&&$&%%%=+++>++>+))))+>+>
>?>++>+);;;!!*+>+>?=&&%&&>>=?+&&&&&%=&$$$$$$&&=)>?=&&$&&&$&&&&&&%?++>>+>>>>>>+)+
????>>?>*!;!!*>++++?&&??&%+>=**))***)+%&$$$&&=*+>>&&&$&&&#$&&&&&&&%>+))+++++>>++
>???>>??+)*!;*>>?>>=%&=>%$&&&>)*!!!*)>%&&&&&?*+=?%&$$&&&$$$&&&&&&&&&=>)))))))+++
+>??>+>?>+))!*>>%&&%%%&=%&$&&?+>>)+?==&$$&&+;)?=?&&$$&&&#$&&&&&&&&&&&&=>>>++)+))
>)+?>)>?>>>>>>?==&$$&&&&%%&&%+)+>=&&=%&$$=*;*>==&&$$&&&$$&&&&&&&&&&&&&&%+)+++)))
>?>+>+>?>>+++>???%&$$$&$&&&&?++>&&&&=%&$=>?*+=?&&$$&&&&#&&&&&&&&&&&&&&&&&?++)***
>>>??>>+++++>>??==%&$$$$$&&&+>?%$&$&&=&&?=%??==&&&&&&&$#&$&&&&&&&&&%%&&$$&?))))+
>>>>>>>>+>>++++=%==%&&&&&&&=++=$$$$$&%%&=%%%?=&&&&&$##$$$&&&&&&&&%%&$$####$?+)))
)++++>>>+>>)*)+=&%=%&&&&&$%>+=&$$$$$#&&%?==%=%&&$&&#$$$$$&&&&&&&&$$########$>**)
)))))++++++>+++>%&%%&&&&&?++>%$$$$&$#$%=?==%%$&$$&&&$$$$$&&&&&&&&$##$#######%)*)
)*)))****))))+>+?&&&&&&$=***?&$$$$$###%?+==?&$$$$&&&$$$$$&$$$$&&$$$$$$######$>+>
*)))***))))))+>>>%&&&&&$>***=$&$&$###&=??=>>$$$$$$&&##$$&$$$$&$$$$$##########=??
))****!!!****>%?>?&&&&$$?)++=$$&&$###%??=?)%$$$$$&&##$$$$#$$$$$$$############$??
+>+))>>+****+&&?>>&&&$$#=*>&$$&$$###$?>?>+>$$$$$$&$#$$$$$#$$$$$##$$###########%=
)****))*!!*)%&&?>?&&&$##?+?&$&&$####&??)))%&$$$$&$##$$$$###$$##$$$$###########$%
**)!!*!***)=#&&?>?&&&###??%$$$$#####%>)*!>&$$$$$&##$$$$$###$##$&&$$###########$%
+)++))***)?$#%&?>=&&$###%&&$#$######%+)**%&$$$$&##$&$$$$#@$$$$&$$####$$########%
+))*!*)*)?&##=%=?%&$####&&&$#######$=)**>&&$$&$##$$&$$$###$$&&$$##$$$$#########&
++>>++)))=$##%>?=&######&&&$#######&?**+%&$$&&$##$$&$$$###$$$##$$$$$###########&
>>>>>>+>>=$&$$%$########$##########%?*)=&&&&&$###$$&$$$###$###$$$$#############&
+)))+))+)?#$$$#########@$$$#######$%>)>&&&$$$###$$$$$#######$&$$###############&
))))+>>>>=$$##@@@#####@@##########&%>+=&&$$$####$$$$######$&&$$#######$########$
?>??=?==?%$####@###############$##&=++%$$$$#@###$&&$$$##@#$#$$$######$$$$######&
?========%$#$##########@@####$$$#$%?)?&&$$#@#$$$$$$#####@###$$####$$$$$$#######%
=========&$#######@@@###@####$$$#$%?>%&&&#@@#$$$$$$#####@#$$$###$$$&$$$#@#####$%
=========&$$#################$$##$%??&&&##@#$$$$$########$$####$$$$$$##@######$%
%%=======%$$#####@@######@###$$##&%>=$&#@######$#$$############$$$############&%
===????==%&$#################$###%%?&&#######$###$#########$#$$$$#############&%
=====?===%&$#################$##$%?=&$@##@##$$$$##$#######$$#$$$$$############%=
?========%&$$################$##&?+%$######$$$$$#########$$$$$$$$############$%=
?==????===&$$##############$$$#$&=>%$#####$$$$$$$$$$#####$$$$$#$$$#$#########$%=