MP(t, p) {n = |t|, m = |p|}
begin
i ← j ← 1
while j ≤ n do
while (i = m + 1) or (i > 0 and p[i] ≠ t[j]) do i ← MPnext[i]
i ← i + 1; j ← j + 1
if i = m + 1 then Output(j − i + 1)
od
end