#include <iostream>
#include <string>
#include <cstdio>
#define Max_Size 100005
int p_next[Max_Size];
using namespace std;
int compare(string s_ , string p_) {
int ans = 0;
for (int i = 1 , j = 1 ; i < s_.size(); ++i) {
if (s_[i] == p_[j]) {
i++, j++;
if (j == (p_.size() - 1)) {
ans++;
j = 1;
i = i - p_.size() +1;
}
}
else {
j = p_next[j];
i--;
}
}
return ans;
}
int main() {
string s, p;
cin >> s;
cin >> p;
string s_ = "#", p_ = "#";
s_ += s, p_ += p;
//获取next数组
int i = 1, j = 0;
p_next[1] = 0;
while (i < p_.size()) {
if (j == 0 || p_[i] == p_[j]) {
i++, j++;
if (p_[i] != p_[j])
p_next[i] = j;
else
p_next[i] = p_next[j];
}
else
j = p_next[j];
}
//函数结束
int result = compare(s_, p_);
cout << result << endl;
system("pause");
return 0;
}