#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
int n, q;
int main() {
  cin >> n;
  string s;
  cin >> s;
  vi alp1[26];
  for (int i = 0; i < n; i++) alp1[s[i] - 'a'].push_back(i + 1);
  cin >> q;
  while (q--) {
    string w;
    cin >> w;
    int ans = INT_MIN;
    vi alp2(26, 0);
    for (int i = 0; i < w.size(); i++) alp2[w[i] - 'a']++;
    for (int i = 0; i < 26; i++) {
      if (!alp2[i])
        continue;
      else
        ans = max(alp1[i][alp2[i] - 1], ans);
    }
    cout << ans << "\n";
  }
  return 0;
}
