The KMP Algorithm