#include <bits/stdc++.h>
using namespace std;
int cnt[27];
int ans[27];
int main() {
  memset(cnt, 0, sizeof(cnt));
  memset(ans, 0, sizeof(ans));
  string s, p;
  cin >> s >> p;
  if (p.size() > s.size()) {
    cout << 0 << endl;
    return 0;
  }
  int sum = 0;
  for (int i = 0; i < p.size(); i++) {
    if (s[i] != '?') cnt[s[i] - 'a']++;
    ans[p[i] - 'a']++;
  }
  bool flag = 0;
  for (int i = 0; i < 26; i++) {
    if (cnt[i] > ans[i]) flag = 1;
  }
  if (!flag) sum++;
  for (int i = 0; i < s.size() - p.size(); i++) {
    flag = 0;
    if (s[i] != '?') cnt[s[i] - 'a']--;
    if (s[i + p.size()] != '?') cnt[s[i + p.size()] - 'a']++;
    for (int j = 0; j < 26; j++) {
      if (cnt[j] > ans[j]) flag = 1;
    }
    if (!flag) sum++;
  }
  cout << sum << endl;
  return 0;
}
