Вивести на екран однакові слова в двох заданих реченнях.Pascal

Вивести на екран однакові слова в двох заданих реченнях
Вот код где ошибка пишет индекс вне границ массива
var
a,b,c,r,f:string;
i,j:integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
Writeln('Vvedite pervuyu stroku'); Readln(a);
Writeln('Vvedite vtoruyu stroku'); Readln(b);
r:='';
repeat
  if a[i]=' ' then
    begin
    c:=copy(a,0,i);
    a:=copy(a,i+1,Length(a));
    end;
  i:=i+1;
until i<=Length(a) ;
  for j:=0 to Length(b) do
  begin
    if b[j]=' ' then
      begin
      f:=copy(b,0,j);
      b:=copy(b,j+1,Length(b));
      end;
  if f=c then
    r:=r+f+' ';
  end;
writeln(r);
readln;
end.

Вопрос закрыт

2