#include <bits/stdc++.h>
using namespace std;
long long n, m, k, t, ans[2000001], h1[2000001], h2[2000001], p1[2000001],
    p2[2000001], g1[2000001], g2[2000001], mod1 = 998244353, mod2 = 1e9 + 7,
                                           base = 131;
char s[2000001];
map<long long, long long> m1, m2;
map<pair<long long, long long>, long long> M;
inline long long read() {
  long long sum = 0, x = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') x = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    sum = (sum << 1) + (sum << 3) + (ch ^ '0');
    ch = getchar();
  }
  return sum * x;
}
inline void write(long long x) {
  if (x < 0) {
    putchar('-');
    x = -x;
  }
  if (x > 9) write(x / 10);
  putchar(x % 10 + '0');
  return;
}
inline long long f1(long long l, long long r) {
  return (h1[r] - h1[l - 1] * p1[r - l + 1] % mod1 + mod1) % mod1;
}
inline long long f2(long long l, long long r) {
  return (h2[r] - h2[l - 1] * p2[r - l + 1] % mod2 + mod2) % mod2;
}
signed main() {
  n = read();
  k = read();
  m = n * k;
  scanf("%s", s + 1);
  t = read();
  p1[0] = p2[0] = 1;
  for (register long long i = 1; i <= m; ++i) s[i + m] = s[i];
  m *= 2;
  for (register long long i = 1; i <= m; ++i) {
    h1[i] = (h1[i - 1] * base + s[i]) % mod1;
    h2[i] = (h2[i - 1] * base + s[i]) % mod2;
    p1[i] = p1[i - 1] * base % mod1;
    p2[i] = p2[i - 1] * base % mod2;
  }
  for (register long long j = 1; j <= t; ++j) {
    scanf("%s", s + 1);
    for (register long long i = 1; i <= k; ++i) {
      g1[j] = (g1[j] * base + s[i]) % mod1;
      g2[j] = (g2[j] * base + s[i]) % mod2;
      M[make_pair(g1[j], g2[j])] = j;
    }
  }
  for (register long long j = 1; j <= k; ++j) {
    m1.clear();
    m2.clear();
    bool f = 1;
    for (register long long i = 0; i < n; ++i) {
      long long s1 = f1(i * k + j, i * k + j + k - 1),
                s2 = f2(i * k + j, i * k + j + k - 1);
      if ((m1.count(s1) && m2.count(s2)) || (M.count(make_pair(s1, s2)) == 0)) {
        f = false;
        break;
      }
      m1[s1] = m2[s2] = 1;
      ans[i + 1] = M[make_pair(s1, s2)];
    }
    if (f) {
      puts("YES");
      for (register long long i = 1; i <= n; ++i) {
        write(ans[i]);
        putchar(' ');
      }
      return 0;
    }
  }
  puts("NO");
  return 0;
}
