#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int m, k, n, s;
const int MAXN = 5e5 + 7;
int arr[MAXN];
int hist[MAXN];
int need[MAXN];
int good = 0;
void add(int pos, int x) {
  bool was = (hist[pos] == need[pos]);
  hist[pos] += x;
  bool now = (hist[pos] == need[pos]);
  if (need[pos] == 0) return;
  if (was && !now && x == -1) good--;
  if (!was && now && x == 1) good++;
}
int solve() {
  if (!(cin >> m >> k >> n >> s)) return 1;
  for (int i = 0; i < m; i++) cin >> arr[i];
  good = 0;
  int must = 0;
  for (int i = 0; i < MAXN; i++) need[i] = hist[i] = 0;
  for (int i = 0; i < s; i++) {
    int x;
    cin >> x;
    if (need[x] == 0) must++;
    need[x]++;
  }
  int r = 0;
  for (int start = 0; start < m; start++) {
    int now = (start) % k;
    while (r < m && good != must) {
      add(arr[r++], 1);
    }
    if (good != must) break;
    now += max(0, r - start - k);
    if ((m - now) < n * k) {
      add(arr[start], -1);
      continue;
    }
    cout << now << '\n';
    if (start % k > 0)
      for (int i = start - 1; i % k >= 0; i--) cout << i + 1 << ' ';
    now -= start % k;
    for (int i = start; i < r; i++) {
      if (need[arr[i]] == 0 && now != 0) {
        cout << i + 1 << ' ';
        now--;
      } else if (need[arr[i]] > 0)
        need[arr[i]]--;
    }
    cout << '\n';
    return 0;
  }
  cout << "-1\n";
  return 0;
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int tests = 1e9;
  for (int i = 1; i <= tests; i++) {
    if (solve()) break;
  }
}
