So let's develop the first brute force approach to pattern matching. First thing, let's get our pattern into a car and let's drive this car along the text. Of course while we are driving, each time we see our pattern appear with in the text we report that there is an occurrence of pattern in the text. So how it works? Let's try to drive nana along panamabananas. So, first letter doesn't match, therefore we need to drive further. First letter again doesn't match, so we need to drive further. Now, n matches n. A makes an a but m doesn't make n so we need to drive further. We continue, continue, continue, continue, continue and now there is again a match. N, a, n, a, we found the pattern and then we continued further, problem solved. This approach is actually very fast. It takes only all of text time pattern time because every time we drive along the text, it may take us up to pattern symbol comparison to figure out. Where pattern matches the text at a given position. And Mischa will tell you later how Knuth-Morris-Pratt algorithm allows to speed up this naive brute force algorithm and by running O of text time independently on the lens of the pattern. So looks like they succeeded. It can go home, right? But wait a second. Let's see how this algorithm would work for billions of patterns. And it turn out that for billions of pattern it will take time text times patterns. To where patterns is the total lengths of all patterns and if we apply it to my genome then text will be 3 billion nucleotide long and the total length of the pattern will be maybe as large as 10 to the power of 12. So, the naive algorithm, or even Knuth Morris Pratt Algorithm will not work. Should we give up?