.....'''''......
.'';oddddddddoooollc:;'..
..',;,',lxxxxxxxxxddddooollc::'..
.':c:,,,;:cdkko'..,::dOOkkkxddolc'......
.';;;,;c::,. :kOo.....;kO0OOOOkkkxdc;;:;;,'..
'cooddxk0Oc'...cccllllodO0OOOOOkkkkkkxxdolc;'..
,lxkkO0KKXXK0xdxkl;::okO00000OOOOkkkkxxxxxxddoc;.
:xxkkOKXXXXXXXXXKOxxxkkkO000000OOOkkkkxxxdddddddxl.....
.cxkkOKXXXXXXXXXXX0kkOkkkkdkkO00OOOOkkkkxxxxdddddddkc'....
,dxkO0KKKKXXXXXXXNKOOOkkdlc;,:xOOOOOOkkkkxxxxxxxxdllc,'....
.oxxOKKKKKKXXXXXXXN0OOkdoc;,'';xOOOOOOOkkkkkkkxdol:;;,...
.lxkOKKKKKKXXXXXXNNXkxkxoolc;:oxkkkkkkOOkkkxddolcc::;;'......
.cok0KK0KKKKXXXXXXNXOodxkOOOOO0Okkxxxxxdddooollllcc::;;'........
.,:kKK0KKKKKXXXXXNKOO0KKXXXXXXKOOkxxxxddddooolllccc::;;.........
,loxOOO0000000000OOO0KXXXXXXXKOdlcccclodddoolllccc::;;'........
.:::lxxxxxxkkkkkkkkkOOO00KK0kxdc;,'''''',;::cllccc::;;,,''.....
.'.,oxxxxxxxxkkkkkkkkkkkOkdoc,,''',;;;;,,,,;:clcc::;;;,,'...
..:ddxxxxxxxxxxxxxkkkkkkdc:;;;:llooooolllcccccc:::;;,,,''....
.coddddxxxxxxxxxxxxxxxxxl,;codddddooolc;;,,:c:::;;;,,'''.......
;looddddddddxxxxxxxxxxxo;,;cddddoolc:;'...,::::;;;,,'''.......
,::cloddddddddddddddddo:;:cllooolc;,'....';:::;;,,,'''.......
.....';:clooddddddddddlcllc;,;::;'......'::;;;,,,'''........
.......',:loooooodooooolc;'..........,;;;;;;,,,'''........
..,;:;:::;,......';clllllc:;;,''''',;;;;;;,,,'''.........
.',;;,;. .':cccccc::::::;;;,,'...'''.........
...... .....';:::::::;;;;,,,.... <