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

struct Node {
    int maxLen, pre, suf, sz;
    bool active;
};

int n, q;
pair<int, int> a[100005]; // Lưu {giá trị, vị trí}
struct Query {
    int k, id;
};
Query queries[100005];
int ans[100005];
Node tree[400005];

// Hàm trộn 2 node
Node merge(Node left, Node right) {
    Node res;
    res.sz = left.sz + right.sz;
    res.active = false; // Node cha chỉ active nếu cả 2 con đều active (không cần thiết lắm ở đây)
    
    res.pre = left.pre;
    if (left.pre == left.sz) res.pre += right.pre;
    
    res.suf = right.suf;
    if (right.suf == right.sz) res.suf += left.suf;
    
    res.maxLen = max({left.maxLen, right.maxLen, left.suf + right.pre});
    return res;
}

void build(int id, int l, int r) {
    tree[id] = {0, 0, 0, r - l + 1, false};
    if (l == r) return;
    int mid = (l + r) / 2;
    build(2 * id, l, mid);
    build(2 * id + 1, mid + 1, r);
}

void update(int id, int l, int r, int pos) {
    if (l == r) {
        tree[id] = {1, 1, 1, 1, true};
        return;
    }
    int mid = (l + r) / 2;
    if (pos <= mid) update(2 * id, l, mid, pos);
    else update(2 * id + 1, mid + 1, r, pos);
    tree[id] = merge(tree[2 * id], tree[2 * id + 1]);
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    cin >> n >> q;
    for (int i = 1; i <= n; i++) {
        cin >> a[i].first;
        a[i].second = i;
    }
    sort(a + 1, a + n + 1); // Sắp xếp giá trị mảng để kích hoạt dần dần

    for (int i = 0; i < q; i++) {
        cin >> queries[i].k;
        queries[i].id = i;
    }
    sort(queries, queries + q, [](Query x, Query y) {
        return x.k < y.k;
    }); // Sắp xếp truy vấn để xử lý offline

    build(1, 1, n);

    int idx = 1;
    for (int i = 0; i < q; i++) {
        // "Bật đèn" các phần tử thỏa mãn a[idx].val <= queries[i].k
        while (idx <= n && a[idx].first <= queries[i].k) {
            update(1, 1, n, a[idx].second);
            idx++;
        }
        ans[queries[i].id] = tree[1].maxLen;
    }

    for (int i = 0; i < q; i++) cout << ans[i] << "\n";
    return 0;
}