#include <bits/stdc++.h>
using namespace std;
int a[500000], b[500000];
int c[500000], need[500000];
int main() {
  int i;
  int m, k, n, s;
  scanf("%d %d %d %d", &m, &k, &n, &s);
  for (i = 0; i < m; i++) scanf("%d", &a[i]), a[i]--;
  for (i = 0; i < s; i++) scanf("%d", &b[i]), b[i]--, need[b[i]]++;
  int j = 0, l, no = 0;
  for (i = 0; i < 500000; i++) {
    if (need[i] > 0) no++;
  }
  for (i = 0; i < m; i++) {
    if (need[a[i]] - 1 == c[a[i]]) no--;
    c[a[i]]++;
    ;
    ;
    while ((j <= i) && (no == 0)) {
      if (need[a[j]] == c[a[j]]) no++;
      c[a[j]]--;
      j++;
    };
    if (j > 0) {
      int s = j - 1;
      s = min(s, i - k + 1);
      if ((s / k + (m - i - 1) / k) >= n - 1) {
        vector<int> del;
        int d = s % k;
        for (l = 0; l < s; l++) {
          if (l < d) del.push_back(l);
        }
        memset(c, 0, sizeof(c));
        d = (i - s + 1) - k;
        for (l = s; l <= i; l++) {
          if ((d > 0) && (need[a[l]] == c[a[l]]))
            del.push_back(l), d--;
          else
            c[a[l]]++;
        }
        printf("%d\n", del.size());
        for (l = 0; l < del.size(); l++) printf("%d ", del[l] + 1);
        printf("\n");
        return 0;
      }
    }
  }
  printf("-1\n");
  return 0;
}
