#include <map>
#include <cmath>
#include <queue>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <time.h>
#include <vector>
#include <list>
#include <stack>
using namespace std;
string A, B;
int solve(int s ,int e)
{
int num = 0, result = 0;
for (int i = s - 1; i <= e - 1; i++)
{
if (A[i] == B[num])
{
num++;
if (num == B.length())
{
num = 0;
result++;
i = i + B.length() - 1;
}
}
else
num = 0;
}
return result;
}
int main()
{
int i, j, N, M, Start, End;
cin >> A >> B;
cin >> N;
for (int i = 1; i <= N; i++)
{
cin >> Start >> End;
cout << solve(Start, End) << endl;
}
cin >> N;
return 0;
}
#define INF (0x3f3f3f3f)
using namespace std;
string A;
map<string, bool>Data;
int solve()
{
int result = 0;
string Save;
Data[A] = 1;
Save = A.substr(0, A.length());
for (int i = 0; i <= A.length(); i++)
{
Save = Save.substr(1, A.length()) + Save[0];
cout << Save << endl;
Data[Save] = 1;
if (strcmp(Save.c_str(), A.c_str()) == 0)
{
for (map<string, bool>::iterator it = Data.begin(); it != Data.end(); it++)
result++;
return result;
}
}
return result;
}
int main()
{
int i, j, N, M, Start, End;
cin >> A;
cout << solve();
return 0;
}