#include <bits/stdc++.h>
using namespace std;
const int maxN = 500010;
int a[maxN];
int b[maxN];
int c[maxN];
bool flag = 0;
int m, k, n, s;
int ok = 0;
int pre;
int ext = 0;
int pos;
vector<int> ans;
int main() {
  scanf("%d %d %d %d", &m, &k, &n, &s);
  ext = m - k * n;
  ok = s;
  for (int i = 1; i <= m; i++) scanf("%d", &a[i]);
  for (int i = 1; i <= s; i++) {
    int tmp;
    scanf("%d", &tmp);
    b[tmp]++;
  }
  for (int i = 1; i <= k + ext; i++) {
    if (b[a[i]] > c[a[i]]) ok--;
    c[a[i]]++;
  }
  if (ok != 0)
    pos = 0;
  else
    pos = 1;
  for (int i = 2; i + k + ext - 1 <= m; i++) {
    if (c[a[i - 1]] <= b[a[i - 1]]) ok++;
    c[a[i - 1]]--;
    if (b[a[i - 1 + k + ext]] > c[a[i - 1 + k + ext]]) ok--;
    c[a[i - 1 + k + ext]]++;
    if (ok == 0 && (i - 1) % k == 0) {
      pos = i;
      break;
    }
  }
  if (pos == 0) {
    puts("-1");
    return 0;
  }
  for (int i = pos; i <= pos + k + ext - 1 && ans.size() < ext; i++) {
    if (c[a[i]] > b[a[i]]) {
      ans.push_back(i);
      c[a[i]]--;
    }
  }
  printf("%d\n", ans.size());
  for (int i = 0; i < ans.size(); i++) {
    if (i > 0) printf(" ");
    printf("%d", ans[i]);
  }
  puts("");
  return 0;
}
