#include <bits/stdc++.h>
using namespace std;
constexpr int N = 5e5 + 1;
constexpr long long inf = -1e18;
constexpr long long MOD = 1e9 + 7;
constexpr double PI = 3.14159265359;
int arr[N], in[N];
set<int> noneed;
map<int, int> mp;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  int m, k, n, s, cd, fi = 1, sz;
  bool flag = true;
  cin >> m >> k >> n >> s;
  cd = m - k * n;
  for (int i = 1; i <= m; i++) cin >> arr[i];
  for (int i = 0; i < s; i++) {
    int el;
    cin >> el;
    mp[el]++;
  }
  sz = mp.size();
  for (int i = 1;; i++) {
    if (noneed.size() == sz) {
      if (flag)
        i--;
      else
        i = m;
      if (i - fi + 1 - k <= cd && ((((fi - 1) / k) + ((m - i) / k) + 1) >= n)) {
        if (i - fi + 1 <= k)
          cout << 0;
        else {
          int del = i - fi + 1 - k;
          cout << del << "\n";
          for (int j = fi; j <= i && del; j++) {
            if (in[arr[j]] > mp[arr[j]]) {
              del--;
              in[arr[j]]--;
              cout << j << " ";
            }
          }
        }
        return 0;
      } else {
        in[arr[fi]]--;
        if (in[arr[fi]] < mp[arr[fi]]) noneed.erase(noneed.find(arr[fi]));
        fi++;
      }
    } else if (flag) {
      if (i == m) flag = false;
      in[arr[i]]++;
      if (in[arr[i]] >= mp[arr[i]] && mp[arr[i]] != 0) noneed.insert(arr[i]);
    } else
      break;
  }
  cout << -1;
  return 0;
}
