#include <bits/stdc++.h>
using namespace std;
vector<int> v[27];
char ara[200002];
int cnt[28];
int main() {
  int n, q, i, res;
  scanf("%d", &n);
  scanf("%s", ara);
  for (i = 0; i < n; i++) {
    cnt[ara[i] - 'a']++;
    v[ara[i] - 'a'].push_back(i + 1);
  }
  scanf("%d", &q);
  while (q--) {
    scanf("%s", ara);
    memset(cnt, 0, sizeof(cnt));
    for (i = 0; ara[i] != '\0'; i++) {
      cnt[ara[i] - 'a']++;
    }
    res = -1;
    for (i = 0; i < 26; i++) {
      if (cnt[i] > 0) {
        res = max(res, v[i][cnt[i] - 1]);
      }
    }
    printf("%d\n", res);
  }
  return 0;
}
