func_code_string: #include <bits/stdc++.h>   using namespace std;   using ll = long long;   const int maxN = 5e5 + 5;   int m, k, n, s;   vector<int> a;   int c[maxN], h[maxN];   int main(int argc, char *argv[]) {     cin >> m >> k >> n >> s;     a.resize(m + 1);     for (int i = 1; i <= m; ++i) cin >> a[i];     int total = 0;     for (int i = 0; i < s; ++i) {       int x;       cin >> x;       c[x]++;       if (c[x] == 1) total++;     }     int cur_s = 0;     vector<int> ans;     bool found = false;     for (int l = 1, r = 1; l + k - 1 <= m; ++l) {       while ((cur_s < total && r <= m) || r - l + 1 <= k) {         h[a[r]]++;         if (h[a[r]] == c[a[r]]) cur_s++;         r++;       }       if (cur_s == total && (l - 1) / k + (m - r + 1) / k + 1 >= n) {         found = true;         int to_remove = r - l - k;         for (int i = l; to_remove > 0 && i < r; ++i) {           if (h[a[i]] > c[a[i]]) {             to_remove--;             ans.emplace_back(i);             h[a[i]]--;           }         }         break;       }       if (h[a[l]] == c[a[l]]) cur_s--;       h[a[l]]--;     }     if (found == false)       cout << -1 << endl;     else {       cout << ans.size() << endl;       for (int i = 0; i < ans.size(); ++i) {         if (i > 0) cout <<    ;         cout << ans[i];       }       cout << endl;     }     return 0;   }   