- #include<bits/stdc++.h> 
- using namespace std; 
- #define f(i,x,y) for(long long i = (x);i < (y);++i) 
- #define MOD 1000000007 
-   
-   
- int main() 
- { 
-     long long T; 
-     cin >> T; 
-     while(T--) 
-     { 
-         string txt,pat; 
-         cin >> txt >> pat; 
-         long long n = txt.size(),m = pat.size(); 
-         long long arr[m]; 
-         map<char,vector<long long> > mp; 
-         map<char,vector<long long> > ::iterator it; 
-         f(i,0,m) 
-         { 
-             mp[pat[i]].push_back(i); 
-             arr[i] = 0; 
-         } 
-   
-         for(long long i = (n-1);i > -1;i--) 
-         { 
-             char ch = txt[i]; 
-             if(mp.find(ch) != mp.end()) 
-             { 
-                 f(k,0,mp[ch].size()) 
-                 { 
-                     long long j = mp[ch][k]; 
-                     if(j == (m-1)) 
-                         arr[j]++; 
-                     else if(j < (m-1)) 
-                         arr[j] += arr[j+1]; 
-                     else 
-                         {;} 
-                 } 
-             } 
-         } 
-         //f(i,0,m) 
-         //cout << arr[i] << "-"; 
-         cout <<arr[0] << endl; 
-     } 
- } 
-   
				I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBmKGkseCx5KSBmb3IobG9uZyBsb25nIGkgPSAoeCk7aSA8ICh5KTsrK2kpCiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKCgppbnQgbWFpbigpCnsKICAgIGxvbmcgbG9uZyBUOwogICAgY2luID4+IFQ7CiAgICB3aGlsZShULS0pCiAgICB7CiAgICAgICAgc3RyaW5nIHR4dCxwYXQ7CiAgICAgICAgY2luID4+IHR4dCA+PiBwYXQ7CiAgICAgICAgbG9uZyBsb25nIG4gPSB0eHQuc2l6ZSgpLG0gPSBwYXQuc2l6ZSgpOwogICAgICAgIGxvbmcgbG9uZyBhcnJbbV07CiAgICAgICAgbWFwPGNoYXIsdmVjdG9yPGxvbmcgbG9uZz4gPiBtcDsKICAgICAgICBtYXA8Y2hhcix2ZWN0b3I8bG9uZyBsb25nPiA+IDo6aXRlcmF0b3IgaXQ7CiAgICAgICAgZihpLDAsbSkKICAgICAgICB7CiAgICAgICAgICAgIG1wW3BhdFtpXV0ucHVzaF9iYWNrKGkpOwogICAgICAgICAgICBhcnJbaV0gPSAwOwogICAgICAgIH0KCiAgICAgICAgZm9yKGxvbmcgbG9uZyBpID0gKG4tMSk7aSA+IC0xO2ktLSkKICAgICAgICB7CiAgICAgICAgICAgIGNoYXIgY2ggPSB0eHRbaV07CiAgICAgICAgICAgIGlmKG1wLmZpbmQoY2gpICE9IG1wLmVuZCgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmKGssMCxtcFtjaF0uc2l6ZSgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBqID0gbXBbY2hdW2tdOwogICAgICAgICAgICAgICAgICAgIGlmKGogPT0gKG0tMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIGFycltqXSsrOwogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoaiA8IChtLTEpKQogICAgICAgICAgICAgICAgICAgICAgICBhcnJbal0gKz0gYXJyW2orMV07CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7O30KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvL2YoaSwwLG0pCiAgICAgICAgLy9jb3V0IDw8IGFycltpXSA8PCAiLSI7CiAgICAgICAgY291dCA8PGFyclswXSA8PCBlbmRsOwogICAgfQp9Cg==