function RabinKarp(string s[1..n], string pattern[1..m])

  hpattern := hash(pattern[1..m]);

  for i from 1 to n-m+1

    hs := hash(s[i..i+m-1])

    if hs = hpattern

      if s[i..i+m-1] = pattern[1..m]

        return i

  return not found