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