#include <bits/stdc++.h>
using namespace std;
long long modpow(long long a, long long b,
                 long long mod = (long long)(1e9 + 7)) {
  if (!b) return 1;
  a %= mod;
  return modpow(a * a % mod, b / 2, mod) * (b & 1 ? a : 1) % mod;
}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int n, k, m, s;
void solve() {
  scanf("%d", &n);
  scanf("%d", &k);
  scanf("%d", &m);
  scanf("%d", &s);
  int l[n];
  for (int i = 0; i < n; i++) scanf("%d", &l[i]);
  int i = 0, j = -1;
  map<int, int> freq0, freq1;
  for (int i = 0; i < s; i++) {
    int x;
    scanf("%d", &x);
    freq1[x]++;
  }
  int cnt = int((freq1).size());
  while (cnt && j < n - 1) {
    j++;
    if (++freq0[l[j]] == freq1[l[j]]) cnt--;
  }
  if (cnt) {
    cout << -1 << endl;
    return;
  }
  for (; j < n; j++) {
    for (; i <= j; i++) {
      if (freq0[l[i]] == freq1[l[i]]) break;
      freq0[l[i]]--;
    }
    int a = (j - i + 1 > k) ? j - i + 1 - k : 0;
    int b = (j - a) % k >= (j - i - a) ? 0 : (j - a) % k + 1;
    if ((j - i + 1 < k) && n / k == j / k) b = j % k + 1;
    if (a + b + m * k <= n) {
      int c = a + b;
      vector<int> torem;
      while (j >= 0 && c) {
        if (j < i || freq0[l[j]] > freq1[l[j]]) {
          c--;
          if (j >= i) freq0[l[j]]--;
          torem.push_back(j);
        }
        j--;
      }
      stringstream ss;
      ss << torem.size() << endl;
      for (int x : torem) ss << x + 1 << " ";
      cout << ss.str() << endl;
      return;
    }
    if (j + 1 != n) freq0[l[j + 1]]++;
  }
  cout << -1 << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  solve();
  return 0;
}
