#include <bits/stdc++.h>
using namespace std;
void print(map<int, int> &mp) {
  for (auto i : mp) cout << i.first << " " << i.second << "\n";
  cout << "\n";
}
void mov_r(int &r, map<int, int> &patt, map<int, int> &cur, vector<int> &col) {
  ++r;
  if (patt[col[r]]) --cur[col[r]];
}
int sz(int l, int r, int m, int k) { return l / k + 1 + (m - r - 1) / k; }
void mov_l(int &l, map<int, int> &patt, map<int, int> &cur, vector<int> &col) {
  if (patt[col[l]]) ++cur[col[l]];
  ++l;
}
void ret(int l, int r, int k, map<int, int> &patt, vector<int> &col) {
  cout << l % k + max(0, r - l + 1 - k) << "\n";
  for (int i = 0; i < l % k; ++i) cout << i + 1 << " ";
  int cnt_del = 0;
  for (int i = l; i <= r; ++i) {
    if (patt[col[i]]) {
      --patt[col[i]];
      continue;
    }
    if (cnt_del++ < (r - l + 1 - k)) cout << i + 1 << " ";
  }
  cout << "\n";
  exit(0);
}
bool bad(map<int, int> &cur) {
  for (auto i : cur)
    if (i.second > 0) return 1;
  return 0;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int m, k, n, s;
  cin >> m >> k >> n >> s;
  vector<int> col(m);
  for (int &i : col) cin >> i;
  map<int, int> patt;
  for (int i = 0; i < s; ++i) {
    int c;
    cin >> c;
    ++patt[c];
  }
  map<int, int> cur = patt;
  int l = 0, r = -1;
  while (l < m) {
    int old_l = l, old_r = r;
    while (r + 1 < m && bad(cur)) mov_r(r, patt, cur, col);
    while (l < m && sz(l, r, m, k) < n) mov_l(l, patt, cur, col);
    if (!bad(cur)) ret(l, r, k, patt, col);
    if (old_l == l && old_r == r) mov_l(l, patt, cur, col);
  }
  cout << "-1\n";
  return 0;
}
