#include <bits/stdc++.h>
using namespace std;
void read(long long &n) { scanf("%lld", &n); }
void read(double &n) { scanf("%lf", &n); }
void read(int &n) { scanf("%d", &n); }
void read(char *s) { scanf("%s", s); }
template <class T>
inline T bigMod(T p, T e, T M) {
  long long ret = 1;
  while (e > 0) {
    if (e & 1) ret = (ret * p) % M;
    p = (p * p) % M;
    e >>= 1;
  }
  return (T)ret;
}
template <class T>
inline T power(T p, T e) {
  long long ret = 1;
  while (e > 0) {
    if (e & 1) ret = (ret * p);
    p = (p * p);
    e >>= 1;
  }
  return (T)ret;
}
char s[100000], t[1000000 + 10];
int main() {
  read(s), read(t);
  int x = -1, y = -1, k = 0;
  for (int i = (0); i < (strlen(t)); i++) {
    if (s[k] == t[i]) k++;
    if (k == strlen(s)) {
      x = i;
      break;
    }
  }
  for (int i = strlen(t) - 1, k = strlen(s) - 1; i >= 0; i--) {
    if (s[k] == t[i]) k--;
    if (k < 0) {
      y = i;
      break;
    }
  }
  if (x == -1 || y == -1 || x > y) {
    printf("0");
  } else
    printf("%d\n", (y - x));
  return 0;
}
