#include <bits/stdc++.h>
using namespace std;
long long kol[1000000];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long i, j, t, mini, q, x, p, z, l, r, y, w, k, sum, n, v, m, f;
  cin >> m;
  cin >> k;
  cin >> t;
  cin >> n;
  vector<long long> a(m), b(n), d(m);
  for (i = 0; i < m; i++) {
    cin >> a[i];
    a[i]--;
  }
  sum = 0;
  for (i = 0; i < n; i++) {
    cin >> b[i];
    b[i]--;
    kol[b[i]]--;
    if (kol[b[i]] == -1) {
      sum++;
    }
  }
  for (i = 0; i < 1000000; i++) {
    if (kol[i] == 0) {
      kol[i] = 10000000;
    }
  }
  l = 0;
  r = 0;
  while (l < m) {
    while (r < m && sum > 0) {
      kol[a[r]]++;
      if (kol[a[r]] == 0) {
        sum--;
      }
      r++;
    }
    if (sum == 0) {
      d[l] = r;
    } else {
      d[l] = -1;
    }
    kol[a[l]]--;
    if (kol[a[l]] == -1) {
      sum++;
    }
    l++;
  }
  z = m - k * t;
  f = -1;
  for (i = 0; i < m; i++) {
    if (d[i] != -1) {
      x = d[i] - i;
      x = z - max(0ll, x - k) - i % k;
      y = max(d[i], i + k);
      y = (m - y) % k;
      x -= y;
      if (x >= 0) {
        f = i;
        break;
      }
    }
  }
  if (f == -1) {
    cout << -1 << endl;
  } else {
    vector<long long> viv;
    x = i % k;
    for (i = 1; i <= x; i++) {
      viv.push_back(i);
    }
    for (i = 0; i < 1000000; i++) {
      kol[i] = 0;
    }
    for (i = 0; i < n; i++) {
      kol[b[i]]--;
    }
    y = max(0ll, d[f] - f - k);
    z = max(d[f], f + k);
    for (i = f; i < z; i++) {
      if (y > 0 && kol[a[i]] >= 0) {
        viv.push_back(i + 1);
        y--;
      } else {
        kol[a[i]]++;
      }
    }
    x = viv.size();
    cout << x << endl;
    for (i = 0; i < x; i++) {
      cout << viv[i] << " ";
    }
    cout << endl;
  }
  return 0;
}
