#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N=10000;
char str[N];
char sub[N];
int next[N];
int len;
void getnext()
{
len=strlen(sub);
next[0]=-1;
int i,j=-1;
for(i=1; i<len; i++)
{
while(j!=-1&&sub[j+1]!=sub[i])
j=next[j];
if(sub[j+1]==sub[i]) j++;
next[i]=j;
}
}
void KMP()
{
int i,j=-1,ans=0;
for(i=0; i<strlen(str); i++)
{
while(j!=-1&&sub[j+1]!=str[i])
j=next[j];
if(sub[j+1]==str[i]) j++;
if(j==len-1)
{
ans++;
j=next[j];
}
}
cout<<ans<<endl;
}
int main()
{
cin>>str;
cin>>sub;
getnext();
KMP();
return 0;
}
#include <cstring>
#include <cstdio>
using namespace std;
const int N=10000;
char str[N];
char sub[N];
int next[N];
int len;
void getnext()
{
len=strlen(sub);
next[0]=-1;
int i,j=-1;
for(i=1; i<len; i++)
{
while(j!=-1&&sub[j+1]!=sub[i])
j=next[j];
if(sub[j+1]==sub[i]) j++;
next[i]=j;
}
}
void KMP()
{
int i,j=-1,ans=0;
for(i=0; i<strlen(str); i++)
{
while(j!=-1&&sub[j+1]!=str[i])
j=next[j];
if(sub[j+1]==str[i]) j++;
if(j==len-1)
{
ans++;
j=next[j];
}
}
cout<<ans<<endl;
}
int main()
{
cin>>str;
cin>>sub;
getnext();
KMP();
return 0;
}