procedure humanize(size: QWord);
var
c: char;
begin
for c in 'BKMGT' do
begin
if (size shr 10 = 0) or (c = 'T') then break;
size := size shr 10;
end;
Writeln(size, c);
end;
begin
humanize(42);
humanize(1024 * 1024);
humanize(8192);
humanize(QWord (1073741824) * 4);
humanize(High(QWord));
end.
cHJvY2VkdXJlIGh1bWFuaXplKHNpemU6IFFXb3JkKTsKdmFyCiAgICBjOiBjaGFyOwpiZWdpbgogICAgZm9yIGMgaW4gJ0JLTUdUJyBkbwogICAgICBiZWdpbgogICAgICAgIGlmIChzaXplIHNociAxMCA9IDApIG9yIChjID0gJ1QnKSB0aGVuIGJyZWFrOwogICAgICAgIHNpemUgOj0gc2l6ZSBzaHIgMTA7CiAgICAgIGVuZDsKICAgIFdyaXRlbG4oc2l6ZSwgYyk7CmVuZDsKCmJlZ2luCglodW1hbml6ZSg0Mik7CglodW1hbml6ZSgxMDI0ICogMTAyNCk7CglodW1hbml6ZSg4MTkyKTsKCWh1bWFuaXplKFFXb3JkICgxMDczNzQxODI0KSAqIDQpOwoJaHVtYW5pemUoSGlnaChRV29yZCkpOwplbmQuCg==