#include <bits/stdc++.h>
using namespace std;
const long long maxn = 1e6 + 5, mod1 = 1e8 + 7, mod2 = 1e8 + 9, base1 = 131,
                base2 = 1331;
char s[maxn * 2], temp[maxn];
long long w1[maxn * 2], w2[maxn * 2], temp1[maxn * 2], temp2[maxn * 2];
long long powmod1 = base1, powmod2 = base2;
int n, k, g, len, cnt;
int ans[maxn];
pair<long long, long long> p;
map<pair<long long, long long>, int> mp;
set<pair<long long, long long> > st;
void init();
long long Hash1();
long long Hash2();
int main() {
  scanf("%d %d", &n, &k);
  scanf("%s", s + 1);
  len = strlen(s + 1);
  scanf("%d", &g);
  init();
  for (int i = 1; i <= g; i++) {
    scanf("%s", temp + 1);
    p.first = Hash1();
    p.second = Hash2();
    mp[p] = i;
  }
  for (int i = 1; i <= k; i++) {
    cnt = 0;
    st.clear();
    p.first = w1[i], p.second = w2[i];
    if (mp.count(p) == 0) continue;
    ans[++cnt] = mp[p];
    st.insert(p);
    for (int j = i + k; j <= len - k + i; j += k) {
      p.first = w1[j], p.second = w2[j];
      if (mp.count(p) == 0 || st.find(p) != st.end()) break;
      ans[++cnt] = mp[p];
      st.insert(p);
    }
    if (cnt != n) continue;
    printf("YES\n");
    for (int j = 1; j <= cnt; j++) {
      printf("%d", ans[j]);
      if (j != cnt) printf(" ");
    }
    printf("\n");
    return 0;
  }
  printf("NO\n");
  return 0;
}
void init() {
  for (int i = 2; i <= k; i++) {
    powmod1 = powmod1 * base1 % mod1;
    powmod2 = powmod2 * base2 % mod2;
  }
  for (int i = 1; i <= len; i++) s[len + i] = s[i];
  s[len * 2 + 1] = 0;
  for (int i = 1; i <= len + k; i++) {
    temp1[i] = (temp1[i - 1] * base1 + s[i]) % mod1;
    temp2[i] = (temp2[i - 1] * base2 + s[i]) % mod2;
  }
  for (int i = 1; i <= len; i++) {
    w1[i] = ((temp1[i + k - 1] - temp1[i - 1] * powmod1) % mod1 + mod1) % mod1;
    w2[i] = ((temp2[i + k - 1] - temp2[i - 1] * powmod2) % mod2 + mod2) % mod2;
  }
  return;
}
long long Hash1() {
  long long ans = 0;
  for (int i = 1; i <= k; i++) ans = (ans * base1 + temp[i]) % mod1;
  return ans;
}
long long Hash2() {
  long long ans = 0;
  for (int i = 1; i <= k; i++) ans = (ans * base2 + temp[i]) % mod2;
  return ans;
}
