#include <bits/stdc++.h>
using namespace std;
int n, k, m, s, res, need;
const int MAXN = 1e6 + 50;
bool flag = false;
int a[MAXN];
bool vis[MAXN];
int p[MAXN];
int cp[MAXN];
int rp[MAXN];
void solve(int l, int r) {
  int need = s;
  cout << res << endl;
  for (int i = l; i <= r && res > 0; i++) {
    if (vis[a[i]]) rp[a[i]]++;
    if (!vis[a[i]]) {
      res--;
      cout << i << ' ';
    } else if (cp[a[i]] < rp[a[i]]) {
      res--;
      cout << i << ' ';
    }
  }
  cout << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> k >> m >> s;
  res = n - k * m;
  need = s;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < s; i++) {
    int x;
    cin >> x;
    vis[x] = true;
    p[x]++;
    cp[x]++;
  }
  int len = k + res;
  for (int i = 1; i <= len && i <= n; i++) {
    if (vis[a[i]]) {
      p[a[i]]--;
      if (p[a[i]] >= 0) need--;
    }
  }
  if (need <= 0) {
    solve(1, len);
    return 0;
  }
  for (int st = 2, ed = st + len - 1; ed <= n; st++, ed++) {
    if (vis[a[ed]]) {
      p[a[ed]]--;
      if (p[a[ed]] >= 0) need--;
    }
    if (vis[a[st - 1]]) {
      p[a[st - 1]]++;
      if (p[a[st - 1]] > 0) need++;
    }
    if ((st - 1) % k == 0 && need <= 0) {
      solve(st, ed);
      return 0;
    }
  }
  cout << -1 << endl;
}
