#include <bits/stdc++.h>
using namespace std;
int num[500100], vis[500100], mp[500100], removenum;
void print(int x) {
  printf("%d", x);
  if (removenum > 1) printf(" ");
  removenum--;
}
int main() {
  int m, k, n, s;
  scanf("%d%d%d%d", &m, &k, &n, &s);
  for (int i = 1; i <= m; i++) scanf("%d", &num[i]);
  for (int i = 1; i <= s; i++) {
    int tmp;
    scanf("%d", &tmp);
    mp[tmp]++;
    vis[tmp]++;
  }
  int be = -1, en = -1, sum = s, ansbe = -1, ansen = -1;
  for (int i = 1; i <= m; i++) {
    if (mp[num[i]] > 0) {
      if (sum == s) be = i;
      if (sum > 0) sum--;
    }
    if (vis[num[i]]) {
      mp[num[i]]--;
      en = i;
    }
    while ((mp[num[be]] == 0 && vis[num[be]] == 0) ||
           (mp[num[be]] < 0 && vis[num[be]])) {
      if (be + 1 > m) break;
      if (mp[num[be]] < 0) mp[num[be]]++;
      be++;
    }
    if (sum == 0 && en != -1 && be != -1 &&
        (((be - 1) / k + (m - max(en, ((be - 1) / k + k) - 1)) / k + 1) >= n)) {
      ansbe = (be - 1) / k * k + 1;
      ansen = max(en, (be - 1) / k + k);
    }
  }
  if (ansbe != -1 && ansen != -1) {
    ansen = max(ansen, ansbe + k - 1);
    removenum = m - n * k;
    printf("%d\n", removenum);
    int i = 1;
    for (i = (n - 1) * k + 1; i < ansbe; i++) {
      print(i);
    }
    int cnt = ansen - ansbe + 1 - k;
    for (int i = ansbe; i <= ansen; i++) {
      if (vis[num[i]])
        vis[num[i]]--;
      else {
        if (cnt) {
          print(i);
          cnt--;
        }
      }
    }
    for (i = ansen + 1; i <= m; i++) {
      if (removenum) {
        print(i);
      }
    }
    printf("\n");
  } else {
    printf("-1\n");
  }
  return 0;
}
