#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int c[10000007];
vector<pair<int, int> > x;
int temp;
vector<int> vt;
int main() {
  scanf("%d %d %d", &m, &k, &n);
  for (int i = 0; i < m; i++) {
    scanf("%d", &temp);
    c[temp]++;
    if (c[temp] > n) {
      printf("-1\n");
      return 0;
    }
  }
  for (int i = 0; i < k; i++) {
    scanf("%d", &temp);
    x.push_back(make_pair(temp, i));
  }
  sort(x.begin(), x.end());
  int cur = 0;
  int remain = 0;
  for (int i = 0; i < k; i++) {
    while (cur <= x[i].first) {
      remain += n - c[cur];
      cur++;
    }
    if (remain) {
      remain--;
      vt.push_back(x[i].second);
    }
  }
  printf("%d\n", vt.size());
  for (int i = 0; i < vt.size(); i++) printf("%d ", vt[i] + 1);
  return 0;
}
