#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
int m, k, n, s, p;
int a[N], b[N], vis[N], cnt = 0;
int main() {
  scanf("%d %d %d %d", &m, &k, &n, &s);
  for (int i = 1; i <= m; i++) {
    scanf("%d", &a[i]);
    p = max(p, a[i]);
  }
  vis[0] = -1;
  for (int i = 1; i <= s; i++) {
    scanf("%d", &b[i]);
    vis[b[i]]++;
    p = max(p, b[i]);
  }
  for (int i = 1; i <= p; i++) {
    if (vis[i]) {
      ++cnt;
    }
  }
  for (int l = 1, r = 0; l <= m; l++) {
    if (++vis[a[l - 1]] == 1) {
      cnt++;
    }
    while (r < m && (cnt || r - l + 1 < k)) {
      ++r;
      --vis[a[r]];
      if (vis[a[r]] == 0) {
        cnt--;
      }
    }
    if (!cnt) {
      if ((l - 1) / k + 1 + (m - r) / k >= n) {
        printf("%d\n", m - k * n);
        int res = n - 1, tmppos = 1;
        while (res && tmppos + k - 1 < l) {
          tmppos += k;
          res--;
        }
        for (int j = tmppos; j < l; j++) {
          printf("%d ", j);
        }
        int len = r - l + 1;
        for (int j = l; j <= r; j++) {
          if (len == k) continue;
          if (vis[a[j]] < 0) {
            vis[a[j]]++;
            printf("%d ", j);
            len--;
          }
        }
        tmppos = r + 1;
        while (res) {
          tmppos += k;
          res--;
        }
        for (int j = tmppos; j <= m; j++) {
          printf("%d ", j);
        }
        return 0;
      }
    }
  }
  printf("-1");
  return 0;
}
