#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > dp(22, vector<int>(pow(2, 20), 0));
vector<int> x(pow(2, 20), 1000000007);
int bSearch(int k, int l, int r) {
  if (r - l == 2) {
    if (x[(l + r) / 2] > k)
      return l;
    else
      return (l + r) / 2;
  }
  if (x[(l + r) / 2] == k)
    return (l + r) / 2;
  else if (x[(l + r) / 2] > k)
    return bSearch(k, l, (l + r) / 2);
  else
    return bSearch(k, (l + r) / 2, r);
}
void initDp(int n, int l) {
  for (int i = 0; i < n; i++) {
    dp[0][i] = bSearch(x[i] + l, 0, pow(2, 20));
  }
  for (int i = 0; i < 21; i++)
    for (int j = 0; j < pow(2, 20); j++) {
      dp[i + 1][j] = dp[i][dp[i][j]];
    }
}
int count(int a, int b) {
  for (int i = 21 - 1; i >= 0; i--) {
    if (dp[i][a] < b) {
      return pow(2, i) + count(dp[i][a], b);
    }
  }
  return 1;
}
void solve() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &x[i]);
    printf("%d\n", x[i]);
  }
  int l, q;
  scanf("%d%d", &l, &q);
  initDp(n, l);
  for (int i = 0; i < q; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
  }
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  solve();
}
