#include <bits/stdc++.h>
using namespace std;
const int MAXN = 512345;
int n, k, m, s;
int maxRemovals;
int needs[MAXN];
int freq[MAXN];
int v[MAXN];
void trySolve(int l, int r) {
  int rem = 0;
  int st = (l / k) * k;
  if (r - st > k) rem += r - st - k;
  if (rem > maxRemovals) return;
  memset(freq, 0, sizeof freq);
  cout << rem << endl;
  for (int i = (l / k) * k; i < r; ++i) {
    if (rem == 0) break;
    if (freq[v[i]] == needs[v[i]]) {
      printf("%d ", i + 1);
      --rem;
    } else
      freq[v[i]]++;
  }
  cout << endl;
  exit(0);
}
int main() {
  cin >> n >> k >> m >> s;
  maxRemovals = n - k * m;
  set<int> unique;
  for (int i = 0; i < n; ++i) scanf("%d", v + i);
  for (int i = 0; i < s; ++i) {
    int x;
    scanf("%d", &x);
    needs[x]++;
    unique.insert(x);
  }
  int r = 0;
  int completed = 0;
  for (int l = 0; l < n; ++l) {
    while (completed < unique.size() && r < n) {
      ++freq[v[r]];
      if (freq[v[r]] == needs[v[r]]) ++completed;
      ++r;
    }
    if (completed == unique.size()) trySolve(l, r);
    freq[v[l]]--;
    if (freq[v[l]] < needs[v[l]]) {
      --completed;
    }
  }
  cout << -1 << endl;
  return 0;
}
