#include <bits/stdc++.h>
using namespace std;
int m, k, n, s, a[500005], b[500005], c[500005];
int tot[500005], cnt[500005];
int l, r, sum, Max, all;
int judge(int l, int r) {
  int tmp1 = l - 1, tmp2 = m - r;
  if (tmp1 / k + tmp2 / k + 1 >= n) return 1;
  return 0;
}
void add(int i) {
  if (cnt[a[i]] == 0) return;
  tot[a[i]]++;
  if (tot[a[i]] == cnt[a[i]]) sum++;
}
void del(int i) {
  if (cnt[a[i]] == 0) return;
  tot[a[i]]--;
  if (tot[a[i]] == cnt[a[i]] - 1) sum--;
}
int main() {
  cin >> m >> k >> n >> s;
  for (int i = 1; i <= m; i++) cin >> a[i], Max = max(Max, a[i]);
  for (int i = 1; i <= s; i++) cin >> b[i], Max = max(Max, b[i]);
  for (int i = 1; i <= s; i++) cnt[b[i]]++;
  l = 1, r = k;
  sum = 0;
  for (int i = 1; i <= Max; i++)
    if (cnt[i] != 0) all++;
  for (int i = l; i <= k; i++) add(i);
  while (1) {
    if (sum == all) {
      if (judge(l, r)) {
        vector<int> v;
        v.clear();
        int tmp = r - l + 1;
        for (int i = l; i <= r; i++) {
          if (cnt[a[i]] > 0 || tmp == k)
            cnt[a[i]]--;
          else
            v.push_back(i), tmp--;
        }
        printf("%d\n", v.size());
        for (int i = 0; i < v.size(); i++) printf("%d ", v[i]);
        return 0;
      }
      del(l);
      l++;
    }
    while (sum < all || l + k - 1 > r) {
      r++;
      if (r > m) break;
      add(r);
    }
    if (r > m) break;
  }
  puts("-1");
}
