#include <bits/stdc++.h>
const int INF = (int)1e9;
using namespace std;
const int MAX = 5e5 + 5;
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int n, m, k, s;
  cin >> n >> k >> m >> s;
  vector<int> a(n + 1);
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  vector<int> seq(MAX), cnt(MAX);
  for (int i = 0; i < s; i++) {
    int b;
    cin >> b;
    seq[b]++;
  }
  vector<int> FromTo(MAX);
  int l = 1, r = 1, tot = 0;
  while (r <= n) {
    while (r <= n && tot < s) {
      if (seq[a[r]] > 0) {
        if (cnt[a[r]] < seq[a[r]]) {
          tot++;
        }
        cnt[a[r]]++;
      }
      if (tot < s) {
        r++;
      }
    }
    FromTo[l] = r;
    cnt[a[l]]--;
    if (seq[a[l]] > 0 && cnt[a[l]] < seq[a[l]]) {
      tot--, r++;
    }
    l++;
  }
  vector<int> ans;
  cnt.assign(MAX, 0);
  int extra = n - m * k;
  for (int i = 1; i <= n && FromTo[i] <= n && FromTo[i] > 0; i++) {
    int len = FromTo[i] - i + 1;
    int in = max(0, len - k);
    int out = (i - 1) % k;
    int needed = in + out;
    if (needed <= extra) {
      for (int j = i; j <= FromTo[i]; j++) {
        cnt[a[j]]++;
      }
      for (int j = i, l = 0; j <= FromTo[i] && l < in; j++) {
        if (cnt[a[j]] > seq[a[j]] || seq[a[j]] == 0) {
          ans.push_back(j);
          cnt[a[j]]--, l++;
        }
      }
      for (int j = i - 1, l = 0; l < out; j--, l++) {
        ans.push_back(j);
      }
      cout << (int)ans.size() << '\n';
      for (int j = 0; j < ans.size(); j++) {
        cout << ans[j] << " ";
      }
      return 0;
    }
  }
  cout << -1 << '\n';
  return 0;
}
