Будь-ласка, допоможіть задачку з програмування

Ось текст програми, що я написав:
uses crt;
type
ptr = ^item;
item = record
words: string;
next: ptr;
end;
var
head,
current,
newptr, // Показчик на елемент що вводиться.
last, // Показчик на останній елемент.
prev: ptr;
i: integer;
key: char; // Код дії над елементом списку.
str: string; // Елемент що вводиться.
search: boolean;// Результат пошуку.
procedure Create; // Створення одноелементного списку.
begin
head := newptr;
head^.next := nil;
end;
procedure InsBeg;
begin
newptr^.next := head;
head := newptr;
end;
procedure SearchIns;
begin
current := head;
repeat
prev := current;
current := current^.next;
if current = nil then
search := true
else
search := current^.words >= str;
until search;
end;
procedure InsMid;
begin
prev^.next := newptr;
newptr^.next := current;
end;
procedure Insert;
begin
write('input element: ');
readln(str);
New(newptr);
newptr^.words := str;
if head = nil then
Create
else
if str