program AddBinaryStrings;
function BinStrToDec(const binStr: string): LongInt;
var
i, power: Integer;
begin
BinStrToDec := 0;
power := 0;
for i := Length(binStr) downto 1 do
begin
if binStr[i] = '1' then
Inc(BinStrToDec, 1 shl power);
Inc(power);
end;
end;
function DecToBinStr(num: LongInt): string;
begin
DecToBinStr := '';
if num = 0 then
DecToBinStr := '0';
while num > 0 do
begin
DecToBinStr := Chr((num mod 2) + Ord('0')) + DecToBinStr;
num := num div 2;
end;
end;
function AddBinaryStrings(a, b: string): string;
var
num1, num2, sum: LongInt;
begin
num1 := BinStrToDec(a);
num2 := BinStrToDec(b);
sum := num1 + num2;
AddBinaryStrings := DecToBinStr(sum);
end;
begin
Writeln(AddBinaryStrings('11', '1'));
Writeln(AddBinaryStrings('1010', '1011'));
end.
(*
run:
100
10101
*)