#include <bits/stdc++.h>
using namespace std;
long long n, a[111111][27], i, j, ans, l, m, b[26];
string s, t;
int main() {
  cin >> s >> t;
  for (i = 0; i < t.size(); i++) b[t[i] - 97]++;
  for (i = 0; i < s.size(); i++) {
    if (i)
      for (j = 0; j < 27; j++) a[i][j] = a[i - 1][j];
    if (s[i] == '?')
      a[i][26]++;
    else
      a[i][s[i] - 97]++;
  }
  long long sss = 0;
  for (j = 0; j < 26; j++) {
    if (a[t.size() - 1][j] > b[j])
      break;
    else
      sss += b[j] - a[t.size() - 1][j];
  }
  if (j == 26 && sss <= a[t.size() - 1][26]) ans++;
  l = 1;
  for (i = t.size(); i < s.size(); i++, l++) {
    sss = 0;
    for (j = 0; j < 26; j++) {
      if (a[i][j] - a[l - 1][j] > b[j])
        break;
      else
        sss += b[j] - a[i][j] + a[l - 1][j];
    }
    if (j == 26 && sss <= a[i][26] - a[l - 1][26]) ans++;
  }
  cout << ans;
}
