// 252
#include<bits/stdc++.h>
using namespace std;
int n, m;
int res;
string s, a, b;
int f[102][2][102];
int main()
{
cin >> s;
cin >> a >> b;
n = a.size();
m = s.size();
s = " " + s;
a = " " + a;
b = " " + b;
for(int i = 0; i <= n; i++) f[i][0][0] = f[i][1][0] = 1;
for(int i = 1; i <= n; i++)
{
for(int k = 1; k <= m; k++)
{
if(k > i) break;
if(a[i] == s[k])
{
for(int j = i-1; j >= 0; j--)
{
if(b[j] == s[k-1]) f[i][0][k] += f[j][1][k-1];
}
}
if(b[i] == s[k])
{
for(int j = i-1; j >= 0; j--)
{
if(a[j] == s[k-1]) f[i][1][k] += f[j][0][k-1];
}
}
}
}
for(int i = 1; i <= n; i++) res += f[i][0][m] + f[i][1][m];
cout << res;
return 0;
}
Ly8gMjUyIAojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG4sIG07CmludCByZXM7CnN0cmluZyBzLCBhLCBiOwppbnQgZlsxMDJdWzJdWzEwMl07CgppbnQgbWFpbigpCnsKICAgIGNpbiA+PiBzOwogICAgY2luID4+IGEgPj4gYjsKCiAgICBuID0gYS5zaXplKCk7CiAgICBtID0gcy5zaXplKCk7CiAgICBzID0gIiAiICsgczsKICAgIGEgPSAiICIgKyBhOwogICAgYiA9ICIgIiArIGI7CgogICAgCiAgICBmb3IoaW50IGkgPSAwOyBpIDw9IG47IGkrKykgZltpXVswXVswXSA9IGZbaV1bMV1bMF0gPSAxOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBrID0gMTsgayA8PSBtOyBrKyspCiAgICAgICAgewogICAgICAgICAgICBpZihrID4gaSkgYnJlYWs7CiAgICAgICAgICAgIGlmKGFbaV0gPT0gc1trXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGludCBqID0gaS0xOyBqID49IDA7IGotLSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZihiW2pdID09IHNbay0xXSkgZltpXVswXVtrXSArPSBmW2pdWzFdW2stMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKGJbaV0gPT0gc1trXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGludCBqID0gaS0xOyBqID49IDA7IGotLSkgCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYoYVtqXSA9PSBzW2stMV0pIGZbaV1bMV1ba10gKz0gZltqXVswXVtrLTFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgcmVzICs9IGZbaV1bMF1bbV0gKyBmW2ldWzFdW21dOwogICAgY291dCA8PCByZXM7CgoKCiAgICByZXR1cm4gMDsKfQ==