#include <bits/stdc++.h>
#pragma GCC optimize("O3,Ofast,no-stack-protector,unroll-loops,fast-math")
using namespace std;
long long m, k, n, s;
vector<long long> liana;
vector<long long> wreath;
vector<long long> our(500001, 0);
vector<long long> cnt(500001, 0);
set<long long> keks;
long long ok = 0;
void add(long long i) {
  if (cnt[liana[i]] + 1 == our[liana[i]]) {
    ok++;
  }
  cnt[liana[i]]++;
}
void del(long long i) {
  if (cnt[liana[i]] == our[liana[i]]) {
    ok--;
  }
  cnt[liana[i]]--;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> m >> k >> n >> s;
  liana.resize(m);
  for (long long i = 0; i < m; i++) {
    cin >> liana[i];
  }
  wreath.resize(s);
  for (long long i = 0; i < s; i++) {
    cin >> wreath[i];
    our[wreath[i]]++;
    keks.insert(wreath[i]);
  }
  for (long long i = 0, j = 0; i < m; i++) {
    while (ok < keks.size() || j - i < k) {
      if (j == m) {
        break;
      }
      add(j);
      j++;
    }
    if (ok < keks.size()) {
      break;
    }
    long long kick = i % k;
    long long inside = (j - i) - k;
    if (m - (kick + inside) >= n * k) {
      cout << kick + inside << '\n';
      for (long long i = 0; i < kick; i++) {
        cout << i + 1 << ' ';
      }
      for (long long c = i; c < j; c++) {
        if (our[liana[c]] <= 0 && inside > 0) {
          cout << c + 1 << ' ';
          inside--;
        }
        our[liana[c]]--;
      }
      cout << '\n';
      fflush(stdout);
      return 0;
    }
    del(i);
  }
  cout << -1 << '\n';
  fflush(stdout);
  return 0;
}
