#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
const long long INF = 0x3f3f3f3f3f3f3f3f;
const long long MAXN = 500003;
long long m, k, n, s;
long long a[MAXN], b[MAXN];
long long cntr[MAXN], cntt[MAXN];
long long cmt, mmt;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> m >> k >> n >> s;
  for (long long i = 0; i < m; i += 1) {
    cin >> a[i];
  }
  for (long long i = 0; i < s; i += 1) {
    cin >> b[i];
    cntt[b[i]]++;
  }
  for (long long i = 0; i < MAXN; i += 1) {
    if (cntt[i] > 0) {
      mmt++;
    }
  }
  long long r = 0;
  for (long long l = 0; l < m; l += 1) {
    bool fnd = true;
    while (cmt < mmt || r - l < k) {
      if (r == m) {
        fnd = false;
        break;
      }
      if (++cntr[a[r]] == cntt[a[r]]) {
        cmt++;
      }
      r++;
    }
    if (!fnd) {
      break;
    }
    if (l / k + 1 + (m - r) / k >= n) {
      ;
      cout << (l - l / k * k) + (r - l - k) << '\n';
      vector<long long> rmv;
      for (long long i = 1; i < l - l / k * k + 1; i += 1) {
        rmv.emplace_back(i);
      }
      long long rem = r - l - k;
      for (long long i = l; i < r; i++) {
        if (--cntt[a[i]] < 0 && rem > 0) {
          rmv.emplace_back(i + 1);
          rem--;
        }
      }
      for (auto d : rmv) {
        cout << d << " ";
      }
      cout << '\n';
      return 0;
    }
    if (cntr[a[l]]-- == cntt[a[l]]) {
      cmt--;
    }
  }
  cout << -1 << '\n';
  return 0;
}
