Помогите разобраться с кодом (Pascal):
uses crt;
const rz=['_',':',';',',',' ','.','?','!'];
var s,s1:string;
i,k,n:byte;
f:boolean;
begin
clrscr;
writeln('Введите набор символов: ');
readln(s);
n:=0;
i:=1;
while i<=length(s) do
if not(s[i] in rz)and ((i=1)or(s[i-1] in rz)) then
begin
k:=i;s1:='';
while not(s[k] in rz)and(k<=length(s))do
begin
s1:=s1+s[k];
k:=k+1;
end;
if s1[1]=s1[length(s1)] then n:=n+1;
i:=i+length(s1);
end;
else i:=i+1;
write('Количество букв с одинаковыми символами в начале и в конце: ',n);
readln;
end.
Что тут может не работать? Компилятор выдает: "Ошибка инструкции"