'-''''''''-''--'--sBBBBBBBBBBBDBs=+===++++++=hBBBBBBBBBBBBBB
-''--''-'''-'''--(DBNBBBBBBBBBz===+====+++++=hBBBBBDBBBBBBBB
'''''--'--''-----sBBBBBBBBBzs=====s==++=++++=hBBBBNBBBBBBBBB
-'--'''----''''-(zDBDBBBBDzs====sss====+++++=hDBDsDBBDBBBBBD
-'''----+~------((BzDBDBBhshhhDBBBBBzsz=++++=hDBh+sBBBBBBBBD
''--~+++++++---(<zssNBBDs==BBBBBBBBBBB=+++++=DBBh+sDBBBBBBDD
-''-~((++++(--~<=s=BBBD=++sBBBNDBDB'==+++++++DBBh=sDDBBBBBDD
'--'----+(~-'-~=+<hBBh++++DD''DBBBD'+++++++++DBBh=sBBBBBBBDD
'''''''---'-'-=++sBDs+++++ss==ssss=+++++++=+=hBBs=hBBBBBBDDD
'''''''''''''+=+=Dh+++++++==++++===++=++++++=DBDssDBBBBBBDDD
''''''''-'-'(++=zz=+++++=+++++=++++++=+=++++=BBh=sBBBBBBDDDD
''''''''''--=+=zs++==+=+++++++++++++++++++++=BBDshBBBBBBDDDD
''''''''---(=++=+++++++++++++++=++++++=+++=+=BBDhBBBBBBBDDDD
''''''''--(=+=+++++++++=+++++++==++=++++++++sBBBBBBBBBBDDDDD
'''''''''-=+++=++++=++==+++==++=((((((((++=+zBBBBBBBBBBDDDDD
''''''''-(+=+++=++(+=+++++=++((-~--~~-(~-(++zBBBBBBBBBDDDDDD
''----'-~<++++++=-(--+++=++-((~(--------(-(=DBBBBBBBBBDDDDDD
---''''-~=++=+=++(-~-(+++((-~-~~----------(+DBBBBBBBBBDDDDDD
''''''-~<=+++++=(~~~(~-((--~(-~(--------(-(-BBBBBBBBBDDDDDDD
'----'-~=++++=+=~-(~~(---~(~(~-----------(--BBBBBBBBBDDDDDDD
'--'---(=++=+==(-(-~(-(-(~(-~(((--------~(-(BBBBBBBBDDDDDDDD
''''---(+=++++s---((-+hh=(-~~-----------(-(+BDBBBBBBDDDDDDDD
--''''-(+=++==s=-(-'zBDh+--((-(------------sBBBBBBBBDDDDDDDD
--''-'-(=+=+++=hBz=zBBD(--(-(~~---------(--sBBBBBBBBDDDDDDDD
''''-'-~<=++=+++zBBBBD+-~~--(-(~----------~+BBBBBBBDDDDDDDDD
''''-'--(+=++++=+zBBh(-~----(------------~~+NBDBBBBDDDDDDDDD
''''''--(<+++=++++=+(~~(--(--~(---------~~~zBBBBBBBDDDDDDDDD
'-'''''-~(+==+++=<++(-((+--~(~----------~(-DBBBBBBDDDDDDDDDD
'--''''-~~=++=sBDz=--+hBBBs(-~~(--------(-(BBBDBBBDDDDDDDDDD
'-''''''-~(+=sBBBBBzhBBBBBBD+-~~---------(hBBBBBDBDDDDDDDDDD
''''''''--((sBBBBBBBBBDBDDhDDh(~--------(zNBBBDBDDDDDDDDDDDD
'''-'''-'-~(hBBBBhDBBDhs<<<shh----------sBBBBBBBBDDDDDDDDDDD
''''''''-'-~(BBB='DBBz<<<<+h-(-(~~-~(-((BBBBBBBBBDDDDDDDDDDD
'''''''''-''(+BB('BBhs<<<<h+--~--~((-~(BBBBBBBBBBDDDDDDDDDDD
'''''''''--'~~ss~+BBs=<<+=D((-(~(---((BBDBBBBBBDBDDDDDDDDDDD
''''''''-'''-((s+hBBDhzhhD+-(--(-(~((BBDDBBBBBBhBDDDDDDDDDDD
'''''''''---'-~(<hs==hzzs-(--~~-(~~+BBD=DBBBBBBDBDDDDDDDDDDD
'''''''''-''''-~((~~~(-----(-~~--~(DBD=+BBBBBBBBBDDDDDDDDDDD
'''''''''''''-'-((~~~-((-~~(-(---=BBD=+=BBBBBBBBBDDDDDDDDDDD
''''''''-----'---((~(--~~-(-(--~sBBD=++zBBBBBBBBBBDDDDDDDDDD
''''''''-+++-'-''-(((~~((---~~(zBBB=+==+BBBBBBBBBBDDDDDDDDDD
'''''''--++++-''--~(~~(---(~-+hBBBs+=++sBBBBBBBBBBBDDDDDDDDD
'''''''-~++++--'---((~~(~~-(sBBBDs+++=(sBBBBBBBBBBBBDDDDDDDD
'''''''-+++++-''''--(~~-~-(=BBBz=++++(-=BBBBBBBBBBBBBDDDDDDD
'''''''-++++~'--'''-~(~-((zBBDs++++==(-(BBBBBBBBBBBBBDDDDDDD
''''''''-(+~''''--'-~(+hBBBDB=++++=+-(~~hNBBBBBBBBBBBBBDDDDD
'''''''''---'-'--'---<DBBBBh=+<=+=+(-(-(+BBBBBBBBBBBBBBBBBBB
'''''''''-''-''''''-~=Dhzz=+++=+++=---((-DBBBBBBBBBBBBBBBBBB
''''''''''''''''''--(===++++++++++~-(--~(+BBBBBBBBBBBBBBBBBB
''''''''''''''''''--(=+++++++++++(-(---~((BDBBBBBBBBBBBBBBBB