Собственно решение задачи представляет собой один цикл. Переменная j. С клавиатуры вводится строка, затем цикл i, из этой очередной строки вырезаются символы стоящие перед пробелом. Таким образом формируется аббревиатура из каждой строки. Затем она сравнивается с исходной. И если они совпадают, то заполняем массивы b и c. в первом будем хранить различные строки с одинаковой аббревиатурой во втором их количество.
program n1;
uses crt;
var i,k,j,n,t,p,l,z,f:integer;
c:array [1..10] of integer;
b:array [1..10] of string;
m,s1,s:string;
begin
readln (m); //аббревиатура
readln (n); //сколько строк
p:=0;
for j:=1 to n do begin
readln (s);
t:=length(m);
s1:='';
s1:=s1+s[1];
for i:=2 to length (s) do if s[i-1]=' ' then s1:=s1+s[i];
if (s1=m) then begin
if (j=1) then begin
b[1]:=s;
k:=1;
c[1]:=1;
end;
if (j>1) then begin
f:=1;
for z:=1 to k do if (b[z]=s) then begin
f:=0;
c[z]:=c[z]+1;
end;
if f=1 then begin
k:=k+1;
b[k]:=s;
c[k]:=1;
end;
end;
end;
end;
for i:=1 to k do writeln (b[i],'-',c[i],' штук');
end.