#include <bits/stdc++.h>
using namespace std;
int main() {
  int m, k, n, s;
  cin >> m >> k >> n >> s;
  int maxb = -1;
  vector<int> a(m, 0);
  vector<int> b(s, 0);
  for (int i = 0; i < m; i++) {
    cin >> a[i];
    maxb = max(maxb, a[i]);
  }
  for (int i = 0; i < s; i++) {
    cin >> b[i];
    maxb = max(maxb, b[i]);
  }
  vector<int> minreq(maxb + 1, 0);
  for (int i = 0; i < s; i++) minreq[b[i]]++;
  int r = -1;
  int currsum = 0;
  vector<int> rlims(m, 1000000000);
  vector<int> curr(maxb + 1, 0);
  for (int i = 0; i < m; i++) {
    if (i > 0) {
      curr[a[i - 1]]--;
      if (curr[a[i - 1]] < minreq[a[i - 1]]) currsum--;
    }
    while (currsum < s && r + 1 < m) {
      r++;
      if (curr[a[r]] < minreq[a[r]]) currsum++;
      curr[a[r]]++;
    }
    if (currsum >= s) rlims[i] = r;
  }
  int flag = 0;
  int st, en;
  for (int i = 0; i < m; i++) {
    int f = i / k;
    st = f * k;
    en = rlims[i];
    if (en - st + 1 <= k) en = st + k - 1;
    int bst = m - 1 - en;
    int b = bst / k;
    int garlands = f + b + 1;
    if (garlands >= n) {
      flag = 1;
      break;
    }
  }
  if (!flag) {
    cout << -1 << endl;
    return 0;
  }
  vector<int> ans(maxb + 1, 0);
  vector<int> del;
  int currsz = en - st + 1;
  for (int i = st; i <= en; i++) ans[a[i]]++;
  for (int i = st; i <= en; i++) {
    if (currsz == k) break;
    if (ans[a[i]] > minreq[a[i]]) {
      ans[a[i]]--;
      del.push_back(i);
      currsz--;
    }
  }
  cout << del.size() << endl;
  for (int i = 0; i < del.size(); i++) cout << del[i] + 1 << " ";
  cout << endl;
  return 0;
}
