#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e5 + 5;
int x[maxn];
int num[maxn], judge[maxn];
int main() {
  int m, k, n, s, num1 = 0;
  bool judge1 = true;
  memset(num, 0, sizeof(num));
  scanf("%d %d %d %d", &m, &k, &n, &s);
  for (int a = 1; a <= m; a++) scanf("%d", &x[a]);
  for (int b = 1; b <= s; b++) {
    int i;
    scanf("%d", &i);
    if (num[i] == 0) num1++;
    num[i]++;
    judge[i] = num[i];
  }
  int r = 1, l;
  for (l = 1; l <= m; l++) {
    if (num1 == 0 && (r - l + 1) >= s) {
      num[x[l - 1]]++;
      if (num[x[l - 1]] > 0) num1++;
    }
    while (r <= m && num1 > 0) {
      if (num[x[r]] == 1) num1--;
      num[x[r]]--;
      r++;
    }
    if (num1 != 0) break;
    if ((l - 1) / k + 1 + (m - r + 1) / k >= n) {
      judge1 = false;
      break;
    }
  }
  if (judge1) {
    printf("-1\n");
    return 0;
  }
  r--;
  int ans = max(r - l + 1 - k, 0);
  printf("%d\n", ans);
  for (int a = l; a <= r; a++) {
    if (ans == 0) break;
    if (judge[x[a]] > 0)
      judge[x[a]]--;
    else {
      if (ans != 1)
        printf("%d ", a);
      else
        printf("%d\n", a);
      ans--;
    }
  }
}
