#include <bits/stdc++.h>
using namespace std;
int main() {
  int m, k, n, s;
  cin >> m >> k >> n >> s;
  int a[m + 1];
  unordered_map<int, int> m1, m2;
  for (int i = 1; i <= m; i++) cin >> a[i];
  int ss[s];
  for (int i = 0; i < s; i++) {
    cin >> ss[i];
    m1[ss[i]]++;
  }
  int si = m1.size();
  int rem = m - n * k;
  if (m < n * k) return cout << "-1", 0;
  int cnt = 0;
  int kk = rem + k;
  for (int i = 1; i <= kk; i++) {
    if (m1[a[i]] > 0) {
      m2[a[i]]++;
      if (m1[a[i]] == m2[a[i]]) cnt++;
    }
  }
  vector<int> v;
  if (cnt >= si) {
    int rt = 0;
    for (int i = 1; i <= kk; i++) {
      if (rt < rem && m1[a[i]] == 0) {
        v.push_back(i);
        rt++;
      } else if (rt < rem && m1[a[i]] < m2[a[i]]) {
        v.push_back(i);
        m2[a[i]]--;
        rt++;
      }
    }
  }
  if (cnt >= si) {
    cout << v.size() << '\n';
    for (int i = 0; i < v.size(); i++) cout << v[i] << " ";
    return 0;
  }
  for (int i = kk + 1; i <= m; i++) {
    if (m1[a[i - kk]] > 0) {
      if (m1[a[i - kk]] == m2[a[i - kk]]) cnt--;
      m2[a[i - kk]]--;
    }
    if (m1[a[i]] > 0) {
      m2[a[i]]++;
      if (m2[a[i]] == m1[a[i]]) cnt++;
    }
    if ((i - kk) % k == 0 && cnt >= si) {
      int rt = 0;
      for (int j = i - kk + 1; j <= i; j++) {
        if (rt < rem && m1[a[j]] == 0) {
          v.push_back(j);
          rt++;
        } else if (rt < rem && m1[a[j]] < m2[a[j]]) {
          v.push_back(j);
          m2[a[j]]--;
          rt++;
        }
      }
      break;
    }
  }
  if (cnt >= si) {
    cout << v.size() << '\n';
    for (int i = 0; i < v.size(); i++) cout << v[i] << " ";
  } else
    cout << "-1" << '\n';
}
