#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5;
int m, n, k, s;
int a[N];
int b[N];
int have[N], need[N];
int can_rmv;
void get_ans(int from) {
  vector<int> ans;
  for (int i = from; i <= from + k + can_rmv - 1; i++) {
    if (need[a[i]] == 0 && (int)ans.size() < can_rmv)
      ans.push_back(i);
    else
      need[a[i]]--;
  }
  cout << (int)ans.size() << endl;
  for (auto x : ans) cout << x << " ";
  cout << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> m >> k >> n >> s;
  for (int i = 1; i <= m; i++) cin >> a[i];
  for (int i = 1; i <= s; i++) {
    cin >> b[i];
    need[b[i]]++;
  }
  can_rmv = m - (n * k);
  for (int i = 1; m - i + 1 >= k; i += k) {
    if (m - i + 1 < k + can_rmv) can_rmv = m - i + 1 - k;
    int done = 0;
    for (int j = i; j <= min(m, i + k + can_rmv - 1); j++) {
      have[a[j]]++;
      if (have[a[j]] <= need[a[j]]) done++;
    }
    if (done == s) {
      get_ans(i);
      return 0;
    }
    for (int j = i; j <= min(m, i + k + can_rmv - 1); j++) have[a[j]]--;
  }
  cout << -1 << endl;
  return 0;
}
