#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 10;
const long long int LINF = 1LL * INF * INF;
const int MAXN = 5e5 + 10;
const int MAXM = 3e3 + 10;
priority_queue<int> pq;
vector<vector<int> > graph;
int A[MAXN];
int chk[MAXN];
int anschk[MAXN];
vector<int> B;
vector<pair<int, int> > C;
char S[MAXN];
int main() {
  int n, m, k, a, b, x, y, s;
  int sum = 0;
  int cnt = 0;
  scanf("%d%d%d%d", &m, &k, &n, &s);
  for (int i = 1; i <= m; i++) {
    scanf("%d", &A[i]);
  }
  for (int i = 1; i <= s; i++) {
    scanf("%d", &x);
    B.push_back(x);
  }
  sort(B.begin(), B.end());
  C.push_back(pair<int, int>(B[0], 1));
  for (int i = 1; i < B.size(); i++) {
    if (B[i] != B[i - 1])
      C.push_back(pair<int, int>(B[i], 1));
    else
      C.back().second++;
  }
  int L = 1;
  int R = 1;
  int cur = 0;
  int anscnt = 0;
  s = C.size();
  while (R <= m) {
    if (cnt == s) {
      if (R - L + 1 - k + (L - 1) % k <= 0) {
        printf("0");
        return 0;
      }
      if (R - L + 1 - k + (L - 1) % k <= m - n * k) {
        printf("%d\n", R - L + 1 - k + (L - 1) % k);
        for (int i = 1; i <= (L - 1) % k; i++) printf("%d ", A[i]);
        for (int i = L; i <= R; i++) {
          cur = lower_bound(C.begin(), C.end(), pair<int, int>(A[i], 0)) -
                C.begin();
          if (cur == C.size() || C[cur].first != A[i])
            printf("%d ", i), anscnt++;
          else if (anschk[cur] < C[cur].second)
            anschk[cur]++;
          else
            printf("%d ", i), anscnt++;
          if (anscnt == R - L + 1 - k) break;
        }
        return 0;
      }
      cur =
          lower_bound(C.begin(), C.end(), pair<int, int>(A[L], 0)) - C.begin();
      if (cur != C.size() && C[cur].first == A[L]) chk[cur]--;
      if (chk[cur] == C[cur].second - 1) cnt--;
      L++;
      if (cnt < s) R++;
    } else {
      cur =
          lower_bound(C.begin(), C.end(), pair<int, int>(A[R], 0)) - C.begin();
      if (cur == C.size() || C[cur].first != A[R]) {
        R++;
        continue;
      }
      chk[cur]++;
      if (chk[cur] == C[cur].second) cnt++;
      if (cnt < s) R++;
    }
  }
  printf("-1");
  return 0;
}
