#include <bits/stdc++.h>
using namespace std;
const long long mod = 1282475263;
struct sHash {
  vector<long long> hr, hl, vetBase;
  int sizeStr;
  void construct(string a, int n, int b) {
    sizeStr = a.size();
    hr.assign(n + 10, 0);
    hl.assign(n + 10, 0);
    vetBase.assign(n + 10, 0);
    vetBase[0] = 1;
    for (int i = 1; i <= n + 9; i++) vetBase[i] = (vetBase[i - 1] * b) % mod;
    for (int i = 0; i < n; i++) {
      int c = a[i] - 'a' + 2;
      if (i > 0)
        hr[i] = (hr[i - 1] * b + c) % mod;
      else
        hr[i] = c;
    }
    for (int i = n - 1; i >= 0; i--) {
      int c = a[i] - 'a' + 2;
      if (i < n - 1)
        hl[i] = (hl[i + 1] * b + c) % mod;
      else
        hl[i] = c;
    }
  }
  long long getHr(int l, int r) {
    if (l == 0) return hr[r];
    long long q = (hr[r] - hr[l - 1] * vetBase[r - l + 1]) % mod;
    if (q < 0) return q + mod;
    return q;
  }
  long long getHl(int l, int r) {
    if (r == sizeStr - 1) return hl[l];
    long long q = (hl[l] - hl[r + 1] * vetBase[r - l + 1]) % mod;
    if (q < 0) return q + mod;
    return q;
  }
} s1, s2;
int main() {
  int n, k, m;
  string str;
  map<pair<long, long>, int> dic;
  cin >> n >> k >> str >> m;
  str += string(str.begin(), str.begin() + k);
  s2.construct(str, n * k + k, 31);
  for (int i = 1; i <= m; i++) {
    string a;
    cin >> a;
    s1.construct(a, a.size(), 31);
    dic[pair<long, long>(s1.getHr(0, a.size() - 1),
                         s1.getHl(0, a.size() - 1))] = i;
  }
  for (int i = 0; i < k; i++) {
    int flag = 1;
    map<pair<long, long>, bool> done;
    vector<int> ans;
    for (int j = 0; j < n; j++) {
      int l = j * k + i, r = (j + 1) * k + i - 1;
      pair<long, long> h1(s2.getHr(l, r), s2.getHl(l, r));
      if (!dic[h1] || done[h1]) {
        flag = 0;
        break;
      }
      done[h1] = true;
      ans.push_back(dic[h1]);
    }
    if (flag) {
      cout << "YES" << endl;
      for (int i = 0; i < (int)ans.size(); i++) cout << ans[i] << ' ';
      return 0;
    }
  }
  cout << "NO" << endl;
  return 0;
}
