#include
using namespace std;
typedef long long ll;
const int maxn = 2e5 + 100;
vector<int>v[30];
char s[maxn];
int main(){
int n;
cin >> n;
scanf("%s", s + 1);
for (int i = 1; i <= n; i++){
int x = s[i] - 'a';
v[x].push_back(i);
}
int q;
cin >> q;
for (int i = 1; i <= q; i++){
int x; char p;
scanf("%d %c", &x, &p);
int ans = x;
int k = p - 'a';
if (v[k].size() == 0){
printf("%d\n", x);
continue;
}
if (n - v[k].size() <= x){
printf("%d\n", n);
continue;
}
int begin = 0 , end = 0;
int cnt = 0;
int sum = 0;
while (1){
while (end < v[k].size()-1 && sum <= x)
sum = v[k][++end] - v[k][begin] - 1 - cnt, cnt++;
if (sum < x){
ans = max(ans, x + cnt + 1);
break;
}
if (sum >= x){
int h = sum - x;
int num = 0;
ans = max(ans, v[k][end] - v[k][begin] - h+(h==0));
}
sum -= v[k][begin + 1] - v[k][begin]-1;
begin++;
if (begin >= v[k].size())
break;
cnt--;
}
printf("%d\n", ans);
}
return 0;
}