#include <stdio.h>
#include "message.h"
#include "poszukiwania.h"
using namespace std;
long long int n, m;
long long int potega = 999983;
long long int potega_usuwana = 999983;
long long int hasz_kosmiczny = 0;
long long int modulo = 1e9+21;
long long int hasz_naukowy = 0;
long long int do_odjecia;
int odpowiedz = 0;
int main()
{
if(MyNodeId() == 0)
{
n = SignalLength();
m = SeqLength();
for(int i = 0; i < n; i++)
{
hasz_kosmiczny += (SignalAt(i+1)+7)*potega;
hasz_kosmiczny %= modulo;
potega *= 999983;
potega %= modulo;
}
potega = 999983;
for(int i = 0; i < n; i++)
{
hasz_naukowy += (SeqAt(i+1)+7)*potega;
hasz_naukowy %= modulo;
potega *= 999983;
potega %= modulo;
}
if(hasz_kosmiczny == hasz_naukowy) odpowiedz++;
for(int i = n; i < m; i++)
{
hasz_naukowy += (SeqAt(i+1)+7)*potega;
hasz_naukowy %= modulo;
do_odjecia = (SeqAt(i-n+1)+7)*potega_usuwana;
do_odjecia %= modulo;
hasz_naukowy -= do_odjecia;
while(hasz_naukowy < 0) hasz_naukowy += modulo;
hasz_kosmiczny *= 999983;
hasz_kosmiczny %= modulo;
if(hasz_naukowy == hasz_kosmiczny) odpowiedz++;
potega *= 999983;
potega %= modulo;
potega_usuwana *= 999983;
potega_usuwana %= modulo;
}
printf("%d\n", odpowiedz);
}
return 0;
}