#include <bits/stdc++.h>
using namespace std;
struct P {
  int x, y;
  bool operator<(const P &a) const {
    if (y != a.y) return y > a.y;
    return x > a.x;
  }
};
vector<int> v[500010];
int i, n, d, m, k, a, b, c, e[500010];
int o[511111];
int l[511111];
int j[511111];
int dx[10] = {0, 1, 0, -1, 1, 1, -1, -1}, dy[10] = {1, 0, -1, 0, 1, -1, 1, -1},
    dz[10] = {0, 0, 0, 0, 1, -1};
long long mod = 1000000007, mod2 = 1000000009, mod3 = 2017;
long long x, z, y;
double pi = 3.14159265;
P u[1];
stack<int> s;
priority_queue<int, vector<int>, greater<int> > q;
char r[1];
bool as(P a, P b) { return a.x < b.x; }
int main() {
  scanf("%d %d %d %d", &a, &b, &c, &d);
  for (int t = 1; t <= 500000; t++) v[t].push_back(0);
  for (int t = 1; t <= a; v[o[t]].push_back(t), t++) scanf("%d", &o[t]);
  for (int t = 1; t <= d; l[n]++, t++) scanf("%d", &n);
  n = b;
  for (int t = 1; t <= 500000; t++) {
    if (v[t].size() - 1 < l[t]) {
      puts("-1");
      return 0;
    }
    n = max(n, v[t][l[t]]);
  }
  for (int t = 1; t <= n; t++) j[o[t]]++;
  for (int t = 1; t <= a; t++) {
    if ((t - 1) / b + (a - n) / b + 1 >= c) {
      printf("%d\n", a - b * c);
      int s[500100];
      memset(s, 0, sizeof(s));
      for (int h = t; h <= n; h++)
        if (s[o[h]] >= l[o[h]]) {
          if (q.size() < n - t + 1 - b) q.push(h);
          k++;
        } else
          s[o[h]]++;
      for (int h = 1; h <= t - 1; h += b)
        if (q.size() + (t - h) <= a - b * c)
          for (; h <= t - 1; h++) q.push(h + 1000);
      for (int p = n + 1; p <= a; p++)
        if (q.size() < a - b * c)
          q.push(p);
        else
          break;
      for (; q.size(); q.pop()) printf("%d ", q.top());
      return 0;
    }
    m = max(t + b, n);
    if (v[o[t]].size() > 1) {
      if (j[o[t]] - e[o[t]] <= l[o[t]] && j[o[t]] == v[o[t]].size() - 1) {
        puts("-1");
        return 0;
      }
      if (j[o[t]] - e[o[t]] <= l[o[t]]) m = max(m, v[o[t]][j[o[t]] + 1]);
    }
    e[o[t]]++;
    for (int t = n + 1; t <= m; t++) j[o[t]]++;
    n = m;
  }
  puts("-1");
}
