#include <bits/stdc++.h>
using namespace std;
int arr[500010];
int hsh[500010];
int rge[500010];
int hshi[500010];
int main() {
  cin.sync_with_stdio(false);
  int m, k, n, s;
  cin >> m >> k >> n >> s;
  for (int i = 1; i <= m; ++i) {
    cin >> arr[i];
  }
  for (int i = 0; i < s; ++i) {
    int x;
    cin >> x;
    hsh[x]++;
  }
  int cnt = 0;
  int r = 0;
  for (int i = 1; i <= m; ++i) {
    int pr = arr[i - 1];
    hshi[pr]--;
    if (hsh[pr]) {
      if (hshi[pr] < hsh[pr]) --cnt;
    }
    while ((cnt < s) && r + 1 <= m) {
      ++r;
      int el = arr[r];
      hshi[el]++;
      if (hshi[el] <= hsh[el]) ++cnt;
      if (cnt == s) break;
    }
    if (cnt == s) {
      if (r - i + 1 >= k)
        rge[i] = r;
      else {
        if (i + k - 1 <= m) rge[i] = i + k - 1;
      }
    }
  }
  vector<int> sz;
  for (int i = 1; i <= m; ++i) {
    if (!rge[i]) continue;
    int gt = (i - 1) / k + 1 + ((m - rge[i]) / k);
    if (gt >= n) {
      int rem = rge[i] - i + 1 - k;
      for (int j = i; j <= rge[i]; ++j) {
        --hsh[arr[j]];
        if (hsh[arr[j]] < 0 && rem) {
          sz.push_back(j);
          --rem;
        }
      }
      --n;
      int pr = (i - 1) / k;
      pr = min(pr, n);
      n -= pr;
      for (int j = pr * k + 1; j < i; ++j) sz.push_back(j);
      for (int j = rge[i] + n * k + 1; j <= m; ++j) sz.push_back(j);
      cout << sz.size() << endl;
      for (int j = 0; j < sz.size(); ++j) cout << sz[j] << " ";
      exit(0);
    }
  }
  cout << "-1";
}
