#include <bits/stdc++.h>
using namespace std;
const int maxn = 500050;
int m, n, k, s;
int a[maxn], b[maxn];
int t[maxn];
int now[maxn];
bool vis[maxn];
int main() {
  ios::sync_with_stdio(false);
  cin >> m >> k >> n >> s;
  for (int i = 1; i <= m; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= s; i++) {
    cin >> b[i];
    t[b[i]]++;
  }
  if (s > k) {
    cout << -1;
    return 0;
  }
  int lp = 1;
  int wst = 0;
  int ansl = 0, ansr = 0, ans = maxn;
  int cnt = 0;
  int lm = m - n * k;
  for (int j = 1; j <= m; j++) {
    if (!t[a[j]]) {
      wst++;
    } else {
      if (now[a[j]] < t[a[j]])
        cnt++;
      else
        wst++;
      now[a[j]]++;
    }
    while (now[a[lp]] > t[a[lp]] || !t[a[lp]]) {
      if (lp > j) break;
      if (!t[a[lp]]) {
        wst--;
        lp++;
      } else {
        now[a[lp]]--;
        wst--;
        lp++;
      }
    }
    if (cnt == s) {
      int tl = lp;
      int tr = j;
      int tw = max(tr - tl + 1 - k, 0);
      int cut = min((tl - 1) % k + tw, tw + (tr - tw) % k);
      if (cut <= lm) {
        ansl = lp;
        ansr = j;
        ans = cut;
      }
    }
  }
  if (ans > lm)
    cout << "-1";
  else {
    memset(now, 0, sizeof(now));
    cout << m - n * k << endl;
    int tt = m - n * k;
    for (int i = ansl; i <= ansr; i++) {
      if (tt <= 0) break;
      now[a[i]]++;
      if (now[a[i]] > t[a[i]]) {
        vis[i] = true;
        tt--;
      }
    }
    for (int i = ansl - 1; i >= 1 && tt > 0; i--, tt--) {
      vis[i] = true;
    }
    for (int i = ansr + 1; i <= m && tt > 0; i++, tt--) {
      vis[i] = true;
    }
    for (int i = 1; i <= m; i++) {
      if (vis[i]) cout << i << " ";
    }
    cout << endl;
  }
  return 0;
}
