#include <bits/stdc++.h>
using namespace std;
long long int mod = 1000000007;
long long int a[1000000], b[1000000], req[1000000], curr[1000000], tmp[1000000];
int main() {
  ios_base::sync_with_stdio(0);
  ;
  long long int m, n, k, s;
  cin >> m >> k >> n >> s;
  for (int i = 0; i < m; i++) cin >> a[i];
  for (int i = 0; i < s; i++) {
    cin >> b[i];
    req[b[i]]++;
  }
  vector<long long int> ans;
  long long int l = 0, r = -1, ct = 0, len, left, fl = 0, rem, extra;
  while (l < m) {
    if (r < m - 1 &&
        (ct != s || (req[a[l]] > 0 && req[a[l]] > curr[a[l]] - 1))) {
      r++;
      if (req[a[r]] > curr[a[r]]) {
        ct++;
      }
      curr[a[r]]++;
    } else {
      curr[a[l]]--;
      if (req[a[l]] > curr[a[l]]) {
        ct--;
      }
      l++;
    }
    if (ct == s) {
      len = r - l + 1;
      left = m - n * k;
      if (len >= k) {
        left -= (l % k);
        left -= (len - k);
        left -= ((m - 1 - r) % k);
        if (left >= 0) {
          l -= (l % k);
          r += ((m - 1 - r) % k);
          fl = 1;
          break;
        }
      } else {
        rem = k - len;
        if (l % k > rem) {
          if (l % k - rem > (m - n * k)) continue;
          l -= (l % k);
          break;
        }
        rem -= (l % k);
        l -= (l % k);
        r += rem;
        fl = 2;
        break;
      }
    }
  }
  if (fl == 0) {
    cout << -1 << "\n";
  } else {
    extra = k - s;
    for (int i = l; i <= r; i++) {
      if (req[a[i]] > tmp[a[i]]) {
        tmp[a[i]]++;
      } else {
        if (extra == 0) {
          ans.push_back(i + 1);
        } else
          extra--;
      }
    }
    long long int sz = ans.size();
    cout << sz << "\n";
    for (int i = 0; i < sz; i++) {
      cout << ans[i] << " ";
    }
    cout << "\n";
  }
  return 0;
}
