#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
using pr = pair<T1, T2>;
template <typename T>
using vec = vector<T>;
int m, k, n, s;
int a[500002];
int b[500002];
int q[500002];
int cur[500002];
int sat = 0;
int unem[500002];
void hurray(int l) {
  vector<int> answ;
  int sat = 0;
  for (int i = l; i < m; ++i) {
    ++unem[a[i]];
    if (unem[a[i]] <= q[a[i]])
      ++sat;
    else
      answ.push_back(i + 1);
    if (sat == s) break;
  }
  cout << min(((int)answ.size()), m - n * k) << endl;
  for (int(i) = (0); (i) < (min(((int)answ.size()), m - n * k)); ++(i)) {
    printf("%d ", answ[i]);
  }
  cout << endl;
}
int main() {
  cin >> m >> k >> n >> s;
  for (int(i) = (0); (i) < (m); ++(i)) {
    scanf("%d", &a[i]);
  }
  for (int(i) = (0); (i) < (s); ++(i)) {
    scanf("%d", &b[i]);
    ++q[b[i]];
  }
  int karelia = m - n * k;
  int r = -1;
  for (int(i) = (0); (i) < (m); ++(i)) {
    while (r < m - 1 && sat < s) {
      ++r;
      ++cur[a[r]];
      if (cur[a[r]] <= q[a[r]]) ++sat;
    }
    if (sat == s) {
      int rr = (r - i + 1 - k);
      if (rr <= karelia && i % k == 0) {
        hurray(i);
        return 0;
      }
    }
    --cur[a[i]];
    if (cur[a[i]] < q[a[i]]) --sat;
  }
  cout << -1 << endl;
  return 0;
}
