#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<int> vi;
typedef vector<ll> vll;
#define PI (2*acos(0.0))
#define eps 1e-9
#define pb push_back
#define endl "\n"
#define watch(x) cout << (#x) << " is " << (x) << endl;
#define show(v) for(int fi = 0; fi < v.size(); fi++) cout << v[fi] << " "; cout << endl;
#define showpair(v) for(int fi = 0; fi < v.size(); fi++) cout << v[fi].first << " " << v[fi].second << endl;
#define ff first
#define ss second
#define fu cout << "lol" << endl;
#define precision(n) cout << fixed << setprecision(n);
#define lb lower_bound
#define up upper_bound
#define vscan for(i = 0;i<n;i++){cin>>in; v.pb(in);}
#define all(a) a.begin(), a.end()
#define min3(a,b,c) min(a,min(b,c))
#define max3(a,b,c) max(a,max(b,c))
#define mem(a,val) memset(a,val,sizeof(a))
#define loop(i,n) for(i = 0; i < n; i++)
#define TC ull T; cin>>T; while(T--)
#define IN(x) {scanf("%d",&x);}
#define LL(x) {scanf("%lld",&x);}
#define CC(x) {scanf("%c",&x);}
#define pfl(x) printf("%d\n",x)
#define pfll(x) printf("%lld\n",x)
#define newl puts("")
#define space printf(" ")
#define MOD 1000000007
#define speed ios_base::sync_with_stdio(false); cin.tie(NULL);
vector<int> prefix_function(string s) {
int n = (int)s.length();
vector<int> pi(n);
for (int i = 1; i < n; i++) {
int j = pi[i-1];
while (j > 0 && s[i] != s[j])
j = pi[j-1];
if (s[i] == s[j])
j++;
pi[i] = j;
}
return pi;
}
int main()
{
speed;
int i = 0, j = 0, cs = 0, in;
string s, t; cin>>s>>t;
int sz = s.size();
s += s;
vi lps = prefix_function(s);
i = 0, j = 0;
vi pos;
while(i < s.size()){
if(t[j] == s[i]) j++,i++;
if(j == t.size()){
if(i - j + 1 <= sz) pos.pb(i-j+1); // t occurs starting at (i-j+1) <= sz
j = lps[j-1];
}
else if(i < s.size() && t[j] != s[i]){
if(j) j = lps[j-1];
else i++;
}
}
int N = s.size();
vi pre(N+5);
for(i = 0; i < pos.size(); i++){
int x = pos[i] + t.size() - 1; // S = s+s, t occurs in the 1st s
pre[x]++;
x = pos[i] + sz + t.size() - 1; // t occurs in the 2nd s
if(x <= N) pre[x]++; // must not end in 3rd s so <= N
}
for(i = 1; i <= N; i++) pre[i] = pre[i-1]+pre[i];
int q; cin>>q;
while(q--){
int n; cin>>n;
int ans = 0;
if(n/sz - 1 > 0) ans += (n/sz - 1) * (int)pos.size(), n-= (n/sz - 1)*sz;
ans += pre[n];
cout << ans << endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOwp0eXBlZGVmIHZlY3RvcjxpaT4gdmlpOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmxsOwoKI2RlZmluZSBQSSAoMiphY29zKDAuMCkpCiNkZWZpbmUgZXBzIDFlLTkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSB3YXRjaCh4KSBjb3V0IDw8ICgjeCkgPDwgIiBpcyAiIDw8ICh4KSA8PCBlbmRsOwojZGVmaW5lIHNob3codikgZm9yKGludCBmaSA9IDA7IGZpIDwgdi5zaXplKCk7IGZpKyspIGNvdXQgPDwgdltmaV0gPDwgIiAiOyBjb3V0IDw8IGVuZGw7CiNkZWZpbmUgc2hvd3BhaXIodikgZm9yKGludCBmaSA9IDA7IGZpIDwgdi5zaXplKCk7IGZpKyspIGNvdXQgPDwgdltmaV0uZmlyc3QgPDwgIiAiIDw8IHZbZmldLnNlY29uZCA8PCBlbmRsOwojZGVmaW5lIGZmIGZpcnN0CiNkZWZpbmUgc3Mgc2Vjb25kCiNkZWZpbmUgZnUgY291dCA8PCAibG9sIiA8PCBlbmRsOwojZGVmaW5lIHByZWNpc2lvbihuKSBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbihuKTsKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHVwIHVwcGVyX2JvdW5kCiNkZWZpbmUgdnNjYW4gZm9yKGkgPSAwO2k8bjtpKyspe2Npbj4+aW47IHYucGIoaW4pO30KI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgbWluMyhhLGIsYykgbWluKGEsbWluKGIsYykpCiNkZWZpbmUgbWF4MyhhLGIsYykgbWF4KGEsbWF4KGIsYykpCiNkZWZpbmUgbWVtKGEsdmFsKSBtZW1zZXQoYSx2YWwsc2l6ZW9mKGEpKQojZGVmaW5lIGxvb3AoaSxuKSBmb3IoaSA9IDA7IGkgPCBuOyBpKyspCiNkZWZpbmUgVEMgdWxsIFQ7IGNpbj4+VDsgd2hpbGUoVC0tKQojZGVmaW5lIElOKHgpIHtzY2FuZigiJWQiLCZ4KTt9CiNkZWZpbmUgTEwoeCkge3NjYW5mKCIlbGxkIiwmeCk7fQojZGVmaW5lIENDKHgpIHtzY2FuZigiJWMiLCZ4KTt9CiNkZWZpbmUgcGZsKHgpIHByaW50ZigiJWRcbiIseCkKI2RlZmluZSBwZmxsKHgpIHByaW50ZigiJWxsZFxuIix4KQojZGVmaW5lIG5ld2wgcHV0cygiIikKI2RlZmluZSBzcGFjZSBwcmludGYoIiAiKQojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgc3BlZWQgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7Cgp2ZWN0b3I8aW50PiBwcmVmaXhfZnVuY3Rpb24oc3RyaW5nIHMpIHsKICAgIGludCBuID0gKGludClzLmxlbmd0aCgpOwogICAgdmVjdG9yPGludD4gcGkobik7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgIGludCBqID0gcGlbaS0xXTsKICAgICAgICB3aGlsZSAoaiA+IDAgJiYgc1tpXSAhPSBzW2pdKQogICAgICAgICAgICBqID0gcGlbai0xXTsKICAgICAgICBpZiAoc1tpXSA9PSBzW2pdKQogICAgICAgICAgICBqKys7CiAgICAgICAgcGlbaV0gPSBqOwogICAgfQogICAgcmV0dXJuIHBpOwp9CgppbnQgbWFpbigpCnsKICAgIHNwZWVkOwogICAgaW50IGkgPSAwLCBqID0gMCwgY3MgPSAwLCBpbjsKICAgIHN0cmluZyBzLCB0OyBjaW4+PnM+PnQ7CiAgICBpbnQgc3ogPSBzLnNpemUoKTsKICAgIHMgKz0gczsKICAgIHZpIGxwcyA9IHByZWZpeF9mdW5jdGlvbihzKTsKICAgIGkgPSAwLCBqID0gMDsKICAgIHZpIHBvczsKICAgIHdoaWxlKGkgPCBzLnNpemUoKSl7CiAgICAgICAgaWYodFtqXSA9PSBzW2ldKSBqKyssaSsrOwogICAgICAgIGlmKGogPT0gdC5zaXplKCkpewogICAgICAgICAgICBpZihpIC0gaiArIDEgPD0gc3opIHBvcy5wYihpLWorMSk7ICAvLyB0IG9jY3VycyBzdGFydGluZyBhdCAoaS1qKzEpIDw9IHN6CiAgICAgICAgICAgIGogPSBscHNbai0xXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihpIDwgcy5zaXplKCkgJiYgdFtqXSAhPSBzW2ldKXsKICAgICAgICAgICAgaWYoaikgaiA9IGxwc1tqLTFdOwogICAgICAgICAgICBlbHNlIGkrKzsKICAgICAgICB9CiAgICB9CiAgICBpbnQgTiA9IHMuc2l6ZSgpOwogICAgdmkgcHJlKE4rNSk7CiAgICBmb3IoaSA9IDA7IGkgPCBwb3Muc2l6ZSgpOyBpKyspewogICAgICAgIGludCB4ID0gcG9zW2ldICsgdC5zaXplKCkgLSAxOyAvLyBTID0gcytzLCB0IG9jY3VycyBpbiB0aGUgMXN0IHMKICAgICAgICBwcmVbeF0rKzsKICAgICAgICB4ID0gcG9zW2ldICsgc3ogKyB0LnNpemUoKSAtIDE7IC8vIHQgb2NjdXJzIGluIHRoZSAybmQgcwogICAgICAgIGlmKHggPD0gTikgcHJlW3hdKys7IC8vIG11c3Qgbm90IGVuZCBpbiAzcmQgcyBzbyA8PSBOCiAgICB9CiAgICBmb3IoaSA9IDE7IGkgPD0gTjsgaSsrKSBwcmVbaV0gPSBwcmVbaS0xXStwcmVbaV07CiAgICBpbnQgcTsgY2luPj5xOwogICAgd2hpbGUocS0tKXsKICAgICAgICBpbnQgbjsgY2luPj5uOwogICAgICAgIGludCBhbnMgPSAwOwogICAgICAgIGlmKG4vc3ogLSAxID4gMCkgYW5zICs9IChuL3N6IC0gMSkgKiAoaW50KXBvcy5zaXplKCksIG4tPSAobi9zeiAtIDEpKnN6OwogICAgICAgIGFucyArPSBwcmVbbl07CiAgICAgICAgY291dCA8PCBhbnMgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9