#include <bits/stdc++.h>
int inp() {
  char c = getchar();
  while (c < '0' || c > '9') c = getchar();
  int sum = 0;
  while (c >= '0' && c <= '9') {
    sum = sum * 10 + c - '0';
    c = getchar();
  }
  return sum;
}
int lim[500010], a[500010], num[500010];
bool isans[500010];
bool check(int mid) {
  memset(num, 0, sizeof(num));
  for (int i = 1; i <= mid; i++) num[a[i]]++;
  for (int i = 1; i <= 500000; i++)
    if (num[i] < lim[i]) return false;
  return true;
}
int main() {
  int n = inp();
  int k = inp();
  int m = inp();
  int s = inp();
  for (int i = 1; i <= n; i++) a[i] = inp();
  for (int i = 1; i <= s; i++) lim[inp()]++;
  int l = k;
  int r = n + 1;
  while (l < r) {
    int mid = (l + r) >> 1;
    if (check(mid))
      r = mid;
    else
      l = mid + 1;
  }
  if (r == n + 1) {
    printf("-1\n");
    return 0;
  }
  check(l);
  int lans, rans;
  int ans = 2147483647;
  num[0] = 1;
  for (int l = 1; l <= n; l++) {
    num[a[l - 1]]--;
    while ((num[a[l - 1]] < lim[a[l - 1]] || r < l + k - 1) && r <= n) {
      num[a[++r]]++;
    }
    if (r > n) break;
    if ((l - 1) / k + (n - r) / k + 1 >= m) {
      if ((l - 1) % k + (n - r) % k + (r - l + 1 - k) < ans) {
        ans = (l - 1) % k + (n - r) % k + (r - l + 1 - k);
        lans = l;
        rans = r;
      }
    }
  }
  if (ans == 2147483647) {
    printf("-1\n");
    return 0;
  }
  int num = std::max((n - ans - m * k) / k, 0);
  printf("%d\n", ans + num * k);
  for (int i = 1; i <= (lans - 1) % k; i++) printf("%d ", i);
  int cur = (lans - 1) % k + 1;
  for (int i = 1; num > 0 && cur < lans; i++) {
    for (int j = 1; j <= k; j++) printf("%d ", cur++);
    num--;
  }
  for (int i = lans; i <= rans; i++)
    if (lim[a[i]]) {
      lim[a[i]]--;
      isans[i] = true;
    }
  int left = k - s;
  for (int i = lans; i <= rans; i++) {
    if (isans[i]) continue;
    if (!left)
      printf("%d ", i);
    else
      left--;
  }
  for (int i = 1; i <= (n - rans) % k; i++) printf("%d ", rans + i);
  cur = (n - rans) % k + rans + 1;
  for (int i = 1; i <= num; i++)
    for (int j = 1; j <= k; j++) printf("%d ", cur++);
}
