program unit34(input,output);
type charstring=record
                  MaximumLength:integer;
                  ActualLength:integer;
                  Chars:array[1..100] of char;
    {remember  that  our  mechanism allows character  strings  of
various sizes}
                end;
var string1,string2:charstring;

{this is not translated}
procedure readstring(var s:charstring);
var i:integer;
begin
i:=1;
while (i<=s.MaximumLength) and (not eoln(input)) do begin
  read(s.Chars[i]);
  i:=i+1;
end;
i:=i-1;
readln(input);
s.ActualLength:=i;
end;

{nor is this routine}
procedure writestring (s:charstring);
var i:integer;
begin
for i:=1 to s.ActualLength do begin
  write(s.Chars[i]);
end;
writeln;
end;

{this is the key routine}

procedure cs(var string1,string2:charstring);
var i,j:integer;
begin
i:=string1.ActualLength+1;
j:=1;
while (i<=string1.maximumlength) and (j<=string2.actuallength) do
begin
  string1.chars[i]:=string2.chars[j];
  i:=i+1;
  j:=j+1;
end;

string1.actuallength:=string1.actuallength+string2.actuallength+1
;
end;


begin
write('please give me two strings to concatenate, one per line');
string1.MaximumLength:=10;
string2.MaximumLength:=10;
readstring(string1);
readstring(string2);
write('string1 is ');writestring(string1);
write('string2 is ');writestring(string2);
cs(string1,string2);
write('the result of concatenation is ');writestring(string1);
end.