#include <iostream>
#include <string>

using namespace std;

int numDistinct(string S, string T) {
	//corner cases
	if (!S.size() || !T.size() || S.size() < T.size()) return 0;

	//state counter array
	int* ct = new int[T.size()]();
	ct[0] = 1;
	int ret = 0;
	for (int i = 0; i<S.size(); i++)
		for (int j = T.size() - 1; j >= 0; j--)
			if (S[i] == T[j])
				if (j == T.size() - 1) ret += ct[j];
				else ct[j + 1] += ct[j];
	
	return ret;
}

int main() {
	string S = "rabbbit";
	string T = "rabbit";

	int ret;
	ret = numDistinct(S, T);

	cout << ret;

	return 0;
}