#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  cout << fixed << setprecision(12);

  int N, M;
  cin >> N >> M;

  vector<int> m(M);
  vector<int> c(100001, 0);  
  vector<int> A(100001, 0);
  vector<int> all;  
  for ( int i = 0; i < M; i++ ) {
    cin >> m[i];
    m[i]--;    
    c[m[i]]++;    
  }

  int add = 0;
  {
    int cnt = 0;
    bool f = false;    
    for ( int i = 0; i < N; i++ ) {
      if ( !f ) {
	if ( c[i] ) {
	  f = true;	  
	} else {
	  add++;
	}
      } else {
	if ( c[i] ) {
	  A[cnt]++;
	  all.push_back(cnt);	  
	  cnt = 0;	  
	} else {
	  cnt++;	  
	}
      }
    }

    if ( cnt ) all.push_back(cnt);    
  }

  int sum = 0;  
  for ( int i : all ) sum += i;
  sort(all.begin(), all.end());
  vector<int> B(N, 0);
  int idx = 0;  
  for ( int i = 0; i < N; i++ ) {
    B[i] = sum + add;    
    while ( idx < all.size() && all[idx]-i <= 0 ) idx++;    
    sum -= (all.size()-idx);    
  }

  reverse(B.begin(), B.end());

  // for ( int i : B ) cout << i << endl;
   
  int Q;
  cin >> Q;
  vector<int> l(Q);  
  for ( int i = 0; i < Q; i++ ) {
    cin >> l[i];    
    int it = upper_bound(B.begin(), B.end(), l[i]) - B.begin();
    if ( N-it+1 <= 0 || N-it+1 > N ) cout << -1 << endl;    
    else cout << N-it+1 << endl;          
  }    
  
  return 0;
}

