#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
#define ii pair<int, int>
#define fi first
#define se second
using namespace std;
struct Segment_Tree
{
struct Node
{
int mx, mn, lazy;
Node(int mx = 0, int mn = 0, int lazy = 0) :
mx(mx), mn(mn), lazy(lazy) {};
Node operator + (int val) const
{
return Node(mx + val, mn + val, lazy + val);
}
Node operator + (const Node &other) const
{
return Node(max(mx, other.mx), min(mn, other.mn), 0);
}
};
int n;
vector<Node> tree;
Segment_Tree(int n = 0) : n(n)
{
tree.assign(4 * n + 10, Node(0, 0, 0));
}
void push(int id)
{
if (tree[id].lazy == 0)
return ;
for (int nxt_id = 2 * id; nxt_id <= 2 * id + 1; nxt_id++)
tree[nxt_id] = tree[nxt_id] + tree[id].lazy;
tree[id].lazy = 0;
}
void update(int id, int l, int r, int u, int v, int val)
{
if (r < u || l > v)
return ;
if (u <= l && r <= v)
return tree[id] = tree[id] + val, void();
int m = l + r >> 1;
push(id);
update(id << 1, l, m, u, v, val);
update(id << 1 | 1, m + 1, r, u, v, val);
tree[id] = tree[id << 1] + tree[id << 1 | 1];
}
Node get(int id, int l, int r, int u, int v)
{
if (r < u || l > v)
return Node(-1e9, 1e9, 0);
if (u <= l && r <= v)
return tree[id];
int m = l + r >> 1;
push(id);
return get(id << 1, l, m, u, v) + get(id << 1 | 1, m + 1, r, u, v);
}
void update(int l, int r, int val)
{
update(1, 1, n, l, r, val);
}
Node get(int l, int r)
{
return get(1, 1, n, l, r);
}
void print_tree(int id, int l, int r)
{
if (l == r)
return cout << tree[id].mn << ' ', void();
int m = l + r >> 1;
push(id);
print_tree(id << 1, l, m);
print_tree(id << 1 | 1, m + 1, r);
}
};
struct Event
{
bool is_add;
int x;
Event(bool is_add = 0, int x = 0) :
is_add(is_add), x(x) {};
};
const int maxn = 3e5;
int n, l, q, b[maxn + 10], ans[maxn + 10];
ii a[maxn + 10];
Segment_Tree st;
vector<Event> ev[maxn + 10];
set<int> s;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("STATIS.INP", "r"))
{
freopen("STATIS.INP", "r", stdin);
freopen("STATIS.OUT", "w", stdout);
}
cin >> n >> l >> q;
for (int i = 1; i <= n; i++)
{
cin >> a[i].fi;
a[i].se = i;
}
sort(a + 1, a + n + 1);
st = Segment_Tree(n);
for (int i = 1; i <= n; i++)
{
int x = a[i].se;
st.update(max(l, x), min(n, x + l - 1), 1);
Segment_Tree::Node res = st.get(max(l, x), min(n, x + l - 1));
// b[x] = 1;
// for (int j = 1; j <= n; j++)
// cout << b[j] << ' ';
// el;
// st.print_tree(1, 1, n), el;
ev[res.mn].push_back(Event(1, a[i].fi));
ev[res.mx + 1].push_back(Event(0, a[i].fi));
}
for (int i = 1; i <= l; i++)
{
for (Event e : ev[i])
if (e.is_add)
s.insert(e.x);
else
s.erase(e.x);
ans[i] = *s.rbegin();
}
for (int i = 1; i <= q; i++)
{
int x;
cin >> x;
cout << ans[x] << ' ';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgU2VnbWVudF9UcmVlCnsKICAgIHN0cnVjdCBOb2RlCiAgICB7CiAgICAgICAgaW50IG14LCBtbiwgbGF6eTsKCiAgICAgICAgTm9kZShpbnQgbXggPSAwLCBpbnQgbW4gPSAwLCBpbnQgbGF6eSA9IDApIDoKICAgICAgICAgICAgbXgobXgpLCBtbihtbiksIGxhenkobGF6eSkge307CiAgICAgICAgTm9kZSBvcGVyYXRvciArIChpbnQgdmFsKSBjb25zdAogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIE5vZGUobXggKyB2YWwsIG1uICsgdmFsLCBsYXp5ICsgdmFsKTsKICAgICAgICB9CiAgICAgICAgTm9kZSBvcGVyYXRvciArIChjb25zdCBOb2RlICZvdGhlcikgY29uc3QKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBOb2RlKG1heChteCwgb3RoZXIubXgpLCBtaW4obW4sIG90aGVyLm1uKSwgMCk7CiAgICAgICAgfQogICAgfTsKCiAgICBpbnQgbjsKICAgIHZlY3RvcjxOb2RlPiB0cmVlOwoKICAgIFNlZ21lbnRfVHJlZShpbnQgbiA9IDApIDogbihuKQogICAgewogICAgICAgIHRyZWUuYXNzaWduKDQgKiBuICsgMTAsIE5vZGUoMCwgMCwgMCkpOwogICAgfQogICAgdm9pZCBwdXNoKGludCBpZCkKICAgIHsKICAgICAgICBpZiAodHJlZVtpZF0ubGF6eSA9PSAwKQogICAgICAgICAgICByZXR1cm4gOwogICAgICAgIGZvciAoaW50IG54dF9pZCA9IDIgKiBpZDsgbnh0X2lkIDw9IDIgKiBpZCArIDE7IG54dF9pZCsrKQogICAgICAgICAgICB0cmVlW254dF9pZF0gPSB0cmVlW254dF9pZF0gKyB0cmVlW2lkXS5sYXp5OwogICAgICAgIHRyZWVbaWRdLmxhenkgPSAwOwogICAgfQogICAgdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgaW50IHZhbCkKICAgIHsKICAgICAgICBpZiAociA8IHUgfHwgbCA+IHYpCiAgICAgICAgICAgIHJldHVybiA7CiAgICAgICAgaWYgKHUgPD0gbCAmJiByIDw9IHYpCiAgICAgICAgICAgIHJldHVybiB0cmVlW2lkXSA9IHRyZWVbaWRdICsgdmFsLCB2b2lkKCk7CiAgICAgICAgaW50IG0gPSBsICsgciA+PiAxOwogICAgICAgIHB1c2goaWQpOwogICAgICAgIHVwZGF0ZShpZCA8PCAxLCBsLCBtLCB1LCB2LCB2YWwpOwogICAgICAgIHVwZGF0ZShpZCA8PCAxIHwgMSwgbSArIDEsIHIsIHUsIHYsIHZhbCk7CiAgICAgICAgdHJlZVtpZF0gPSB0cmVlW2lkIDw8IDFdICsgdHJlZVtpZCA8PCAxIHwgMV07CiAgICB9CiAgICBOb2RlIGdldChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KQogICAgewogICAgICAgIGlmIChyIDwgdSB8fCBsID4gdikKICAgICAgICAgICAgcmV0dXJuIE5vZGUoLTFlOSwgMWU5LCAwKTsKICAgICAgICBpZiAodSA8PSBsICYmIHIgPD0gdikKICAgICAgICAgICAgcmV0dXJuIHRyZWVbaWRdOwogICAgICAgIGludCBtID0gbCArIHIgPj4gMTsKICAgICAgICBwdXNoKGlkKTsKICAgICAgICByZXR1cm4gZ2V0KGlkIDw8IDEsIGwsIG0sIHUsIHYpICsgZ2V0KGlkIDw8IDEgfCAxLCBtICsgMSwgciwgdSwgdik7CiAgICB9CiAgICB2b2lkIHVwZGF0ZShpbnQgbCwgaW50IHIsIGludCB2YWwpCiAgICB7CiAgICAgICAgdXBkYXRlKDEsIDEsIG4sIGwsIHIsIHZhbCk7CiAgICB9CiAgICBOb2RlIGdldChpbnQgbCwgaW50IHIpCiAgICB7CiAgICAgICAgcmV0dXJuIGdldCgxLCAxLCBuLCBsLCByKTsKICAgIH0KICAgIHZvaWQgcHJpbnRfdHJlZShpbnQgaWQsIGludCBsLCBpbnQgcikKICAgIHsKICAgICAgICBpZiAobCA9PSByKQogICAgICAgICAgICByZXR1cm4gY291dCA8PCB0cmVlW2lkXS5tbiA8PCAnICcsIHZvaWQoKTsKICAgICAgICBpbnQgbSA9IGwgKyByID4+IDE7CiAgICAgICAgcHVzaChpZCk7CiAgICAgICAgcHJpbnRfdHJlZShpZCA8PCAxLCBsLCBtKTsKICAgICAgICBwcmludF90cmVlKGlkIDw8IDEgfCAxLCBtICsgMSwgcik7CiAgICB9Cn07CnN0cnVjdCBFdmVudAp7CiAgICBib29sIGlzX2FkZDsKICAgIGludCB4OwoKICAgIEV2ZW50KGJvb2wgaXNfYWRkID0gMCwgaW50IHggPSAwKSA6CiAgICAgICAgaXNfYWRkKGlzX2FkZCksIHgoeCkge307Cn07Cgpjb25zdCBpbnQgbWF4biA9IDNlNTsKCmludCBuLCBsLCBxLCBiW21heG4gKyAxMF0sIGFuc1ttYXhuICsgMTBdOwppaSBhW21heG4gKyAxMF07ClNlZ21lbnRfVHJlZSBzdDsKdmVjdG9yPEV2ZW50PiBldlttYXhuICsgMTBdOwpzZXQ8aW50PiBzOwoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiU1RBVElTLklOUCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbigiU1RBVElTLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIlNUQVRJUy5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgY2luID4+IG4gPj4gbCA+PiBxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBhW2ldLmZpOwogICAgICAgIGFbaV0uc2UgPSBpOwogICAgfQogICAgc29ydChhICsgMSwgYSArIG4gKyAxKTsKICAgIHN0ID0gU2VnbWVudF9UcmVlKG4pOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGludCB4ID0gYVtpXS5zZTsKICAgICAgICBzdC51cGRhdGUobWF4KGwsIHgpLCBtaW4obiwgeCArIGwgLSAxKSwgMSk7CiAgICAgICAgU2VnbWVudF9UcmVlOjpOb2RlIHJlcyA9IHN0LmdldChtYXgobCwgeCksIG1pbihuLCB4ICsgbCAtIDEpKTsKLy8gICAgICAgIGJbeF0gPSAxOwovLyAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbjsgaisrKQovLyAgICAgICAgICAgIGNvdXQgPDwgYltqXSA8PCAnICc7Ci8vICAgICAgICBlbDsKLy8gICAgICAgIHN0LnByaW50X3RyZWUoMSwgMSwgbiksIGVsOwogICAgICAgIGV2W3Jlcy5tbl0ucHVzaF9iYWNrKEV2ZW50KDEsIGFbaV0uZmkpKTsKICAgICAgICBldltyZXMubXggKyAxXS5wdXNoX2JhY2soRXZlbnQoMCwgYVtpXS5maSkpOwogICAgfQogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbDsgaSsrKQogICAgewogICAgICAgIGZvciAoRXZlbnQgZSA6IGV2W2ldKQogICAgICAgICAgICBpZiAoZS5pc19hZGQpCiAgICAgICAgICAgICAgICBzLmluc2VydChlLngpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBzLmVyYXNlKGUueCk7CiAgICAgICAgYW5zW2ldID0gKnMucmJlZ2luKCk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBxOyBpKyspCiAgICB7CiAgICAgICAgaW50IHg7CiAgICAgICAgY2luID4+IHg7CiAgICAgICAgY291dCA8PCBhbnNbeF0gPDwgJyAnOwogICAgfQp9Cg==