{Programma atnem vienu skaitli no otra}

uses crt;
const  max=100;
   osn=2;
type masiv=array[0..max] of integer;

procedure chtenie(var a:masiv);
var ch : char; i:integer;
begin  fillchar(a,sizeof(a), 0) ; read(ch);
 while not(ch in ['0'..'1']) do read(ch);
   while ch in ['0'..'1'] do
    begin for i:=a[0] downto 1 do
       begin a[i+1]:=a[i+1]+(longint(a[i])*2) div osn;
             a[i]:=(longint(a[i])*2) mod osn
       end;
       a[1]:=a[1]+ord(ch)-ord('0');
       if a[a[0]+1]>0 then inc(a[0]);
       read(ch)
    end
end;

procedure writelong(const a : masiv);
var ls, s : String; i : Integer;
begin str(osn div 2,ls);
         write(a[a[0]]);
         for i:=a[0]-1 downto 1 do
         begin str(a[i],s);
            while length(s)<length(ls) do s := '0' + s;
            write(s)
         end; writeln
end;

procedure sublong(var a,b:masiv);
var i,j:integer;
begin
  for i:=1 to b[0] do
     begin
        dec(a[i],b[i]);
        j:=i;
        while (a[j]<0) and (j<=a[0]) do
           begin
              inc(a[j],osn);
              dec(a[j+1]);
              inc(j);
           end;
     end;
  i:=a[0];
  while (i>1) and (a[i]=0) do dec(i);
  a[0]:=i;
end;

var a,b,c:masiv;

begin
clrscr;
writeln('Pirmais saskaitamais: '); chtenie(a);
writeln('Otrais saskaitamais: ');chtenie(b) ;
writeln; writelong(a); writelong(b);
sublong(a,b);
writeln('Rezultats ir: ');
writelong(a);
readkey;
end.