#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<int> ind[(ll)(5e5 + 3)];
int cou[(ll)(5e5 + 3)] = {};
int cu[(ll)(5e5 + 3)] = {};
int main() {
  int m, k, n, s;
  cin >> m >> k >> n >> s;
  int ar[m];
  vector<int> ve;
  vector<int> cve;
  for (int i = 0; i < m; i++) {
    cin >> ar[i];
    ind[ar[i]].push_back(i);
  }
  for (int i = 0; i < s; i++) {
    int val;
    cin >> val;
    if (cou[val] == 0) {
      cu[val] = ve.size();
      ve.push_back(val);
      cve.push_back(0);
    }
    cou[val]++;
  }
  int fl = -1;
  int need = m - n * k;
  int mm = 0;
  for (int i = 0; i < n; i++) {
    int ma = -1;
    for (int j = 0; j < ve.size(); j++) {
      if (ind[ve[j]].size() >= cve[j] + cou[ve[j]]) {
        ma = max(ind[ve[j]][cve[j] + cou[ve[j]] - 1], ma);
      } else {
        ma = -1;
        break;
      }
    }
    if ((ma != -1) && ((ma - k * i + 1) <= k + need)) {
      fl = i;
      mm = ma;
      break;
    }
    for (int j = i * k; j < i * k + k; j++) {
      if (cou[ar[j]]) {
        cve[cu[ar[j]]]++;
      }
    }
  }
  vector<int> vv, ans;
  for (int i = 0; i < ve.size(); i++) {
    vv.push_back(0);
  }
  if (fl != -1) {
    int sss = max(mm - k * fl + 1 - k, 0);
    int ss = 0;
    for (int i = fl * k; i <= mm && sss; i++) {
      if (cou[ar[i]]) {
        if (vv[cu[ar[i]]] < cou[ar[i]]) {
          vv[cu[ar[i]]]++;
        } else {
          ans.push_back(i + 1);
          sss--;
        }
      } else {
        ans.push_back(i + 1);
        sss--;
      }
    }
    cout << ans.size() << "\n";
    for (auto x : ans) {
      cout << x << " ";
    }
    cout << "\n";
  } else {
    cout << "-1\n";
  }
}
