#include<bits/stdc++.h> //NeOWami
using namespace std;
#define int long long
#define ft first
#define sc second
using pii = pair<int, int>;
const int N = 2e5 + 5;
using ull = unsigned long long;
const ull BASE = 200003;
int n, q;
int a[N];
void compress() {
vector<int> tmp;
for (int i = 1; i <= n; i++) {
tmp.push_back(a[i]);
}
sort(tmp.begin(), tmp.end());
tmp.erase(unique(tmp.begin(), tmp.end()), tmp.end());
for (int i = 1; i <= n; i++) a[i] = lower_bound(tmp.begin(), tmp.end(), a[i]) - tmp.begin() + 1;
}
namespace sub1 {
int calc(int l, int r) {
if (l > r) return 0;
set<vector<int>> S;
vector<int> lst;
for (int i =l; i <= r; i++) lst.push_back(a[i]);
S.insert(lst);
int len = r - l + 1;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
reverse(lst.begin() + i, lst.begin() + j + 1);
S.insert(lst);
reverse(lst.begin() + i, lst.begin() + j + 1);
}
}
// cerr << l << " " << r << ":\n";
// for (vector<int> d: S) {
// for (int i: d) cerr << i << " "; cerr << "\n";
// }
return S.size();
}
void solve() {
while(q--) {
int id; cin >> id;
a[id] = 0;
int ans = 0;
for (int l = 1, r = 1; r <= n; r++) {
if (a[r] == 0) {
ans = max(ans, calc(l, r - 1));
l = r + 1;
}
if (r == n && a[r]) ans = max(ans, calc(l, r));
}
cout << ans << "\n";
}
}
}///
namespace sub2 {
ull S[N], T[N], POW[N];
ull GS(int l, int r) {
if (l > r) return 0;
return S[r] - S[l - 1] * POW[r - l + 1];
}
ull GT(int l, int r) {
if (l > r) return 0;
return T[l] - T[r + 1] * POW[r - l + 1];
}
int calc(int l, int r) {
if (l > r) return 0;
set<ull> s;
s.insert(GS(l, r));
for (int i = l; i <= r; i++) {
for (int j = i + 1; j <= r; j++) {
ull val = GS(l, i - 1) * POW[r - (i - 1 + 1) + 1] + GT(i, j) * POW[r - (j + 1) + 1] + GS(j + 1, r);
s.insert(val);
}
}
return s.size();
}
void solve() {
POW[0] = 1;
for (int i = 1; i <= n;i++) POW[i] = POW[i -1 ] * BASE;
for (int i = 1; i <= n; i++) S[i] = S[i -1 ] * BASE + a[i];
for (int i = n; i >= 1; i--) T[i] = T[i +1 ] * BASE + a[i];
while(q--) {
int id; cin >> id;
a[id] = 0;
int ans = 0;
for (int l = 1, r = 1; r <= n; r++) {
if (a[r] == 0) {
ans = max(ans, calc(l, r - 1));
l = r + 1;
}
if (r == n && a[r]) ans = max(ans, calc(l, r));
}
cout << ans << "\n";
}
}
}///
signed main() {
cin.tie(NULL)->sync_with_stdio(false); cout.tie(NULL);
if (ifstream("TET.inp")) {
freopen("TET.inp", "r", stdin);
freopen("TET.out", "w", stdout);
}
cin >> n >> q;
for (int i = 1; i <= n; i++) cin >> a[i];
compress();
// for (int i= 1; i <= n; i++) cerr << a[i] << " "; cerr << "\n";
return sub2::solve(), 0;
// if (n <= 200 && q == 1) return sub1::solve(), 0;
// if (n <= 2000 && q == 1) return sub1::solve(), 0;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4gLy9OZU9XYW1pCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBmdCBmaXJzdAojZGVmaW5lIHNjIHNlY29uZAp1c2luZyBwaWkgPSBwYWlyPGludCwgaW50PjsKY29uc3QgaW50IE4gPSAyZTUgKyA1Owp1c2luZyB1bGwgPSB1bnNpZ25lZCBsb25nIGxvbmc7CmNvbnN0IHVsbCBCQVNFID0gMjAwMDAzOwppbnQgbiwgcTsKaW50IGFbTl07CnZvaWQgY29tcHJlc3MoKSB7CiAgICB2ZWN0b3I8aW50PiB0bXA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICB0bXAucHVzaF9iYWNrKGFbaV0pOwogICAgfQogICAgc29ydCh0bXAuYmVnaW4oKSwgdG1wLmVuZCgpKTsKICAgIHRtcC5lcmFzZSh1bmlxdWUodG1wLmJlZ2luKCksIHRtcC5lbmQoKSksIHRtcC5lbmQoKSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGFbaV0gPSBsb3dlcl9ib3VuZCh0bXAuYmVnaW4oKSwgdG1wLmVuZCgpLCBhW2ldKSAtIHRtcC5iZWdpbigpICsgMTsKfQpuYW1lc3BhY2Ugc3ViMSB7CmludCBjYWxjKGludCBsLCBpbnQgcikgewogICAgaWYgKGwgPiByKSByZXR1cm4gMDsKICAgIHNldDx2ZWN0b3I8aW50Pj4gUzsKICAgIHZlY3RvcjxpbnQ+IGxzdDsKICAgIGZvciAoaW50IGkgPWw7IGkgPD0gcjsgaSsrKSBsc3QucHVzaF9iYWNrKGFbaV0pOwogICAgUy5pbnNlcnQobHN0KTsKICAgIGludCBsZW4gPSByIC0gbCArIDE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgbGVuOyBqKyspIHsKICAgICAgICAgICAgcmV2ZXJzZShsc3QuYmVnaW4oKSArIGksIGxzdC5iZWdpbigpICsgaiArIDEpOwogICAgICAgICAgICBTLmluc2VydChsc3QpOwogICAgICAgICAgICByZXZlcnNlKGxzdC5iZWdpbigpICsgaSwgbHN0LmJlZ2luKCkgKyBqICsgMSk7CiAgICAgICAgfQogICAgfQovLyAgICBjZXJyIDw8IGwgPDwgIiAiIDw8IHIgPDwgIjpcbiI7Ci8vICAgIGZvciAodmVjdG9yPGludD4gZDogUykgewovLyAgICAgICAgZm9yIChpbnQgaTogZCkgY2VyciA8PCBpIDw8ICIgIjsgY2VyciA8PCAiXG4iOwovLyAgICB9CiAgICByZXR1cm4gUy5zaXplKCk7Cn0Kdm9pZCBzb2x2ZSgpIHsKICAgIHdoaWxlKHEtLSkgewogICAgICAgIGludCBpZDsgY2luID4+IGlkOwogICAgICAgIGFbaWRdID0gMDsKICAgICAgICBpbnQgYW5zID0gMDsKICAgICAgICBmb3IgKGludCBsID0gMSwgciA9IDE7IHIgPD0gbjsgcisrKSB7CiAgICAgICAgICAgIGlmIChhW3JdID09IDApIHsKICAgICAgICAgICAgICAgIGFucyA9IG1heChhbnMsIGNhbGMobCwgciAtIDEpKTsKICAgICAgICAgICAgICAgIGwgPSByICsgMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHIgPT0gbiAmJiBhW3JdKSBhbnMgPSBtYXgoYW5zLCBjYWxjKGwsIHIpKTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBhbnMgPDwgIlxuIjsKICAgIH0KfQp9Ly8vCm5hbWVzcGFjZSBzdWIyIHsKdWxsIFNbTl0sIFRbTl0sIFBPV1tOXTsKdWxsIEdTKGludCBsLCBpbnQgcikgewogICAgaWYgKGwgPiByKSByZXR1cm4gMDsKICAgIHJldHVybiBTW3JdIC0gU1tsIC0gMV0gKiBQT1dbciAtIGwgKyAxXTsKfQp1bGwgR1QoaW50IGwsIGludCByKSB7CiAgICBpZiAobCA+IHIpIHJldHVybiAwOwogICAgcmV0dXJuIFRbbF0gLSBUW3IgKyAxXSAqIFBPV1tyIC0gbCArIDFdOwp9CgppbnQgY2FsYyhpbnQgbCwgaW50IHIpIHsKICAgIGlmIChsID4gcikgcmV0dXJuIDA7CiAgICBzZXQ8dWxsPiBzOwogICAgcy5pbnNlcnQoR1MobCwgcikpOwogICAgZm9yIChpbnQgaSA9IGw7IGkgPD0gcjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDw9IHI7IGorKykgewogICAgICAgICAgICB1bGwgdmFsID0gR1MobCwgaSAtIDEpICogUE9XW3IgLSAoaSAtIDEgKyAxKSArIDFdICsgR1QoaSwgaikgKiBQT1dbciAtIChqICsgMSkgKyAxXSArIEdTKGogKyAxLCByKTsKICAgICAgICAgICAgcy5pbnNlcnQodmFsKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcy5zaXplKCk7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBQT1dbMF0gPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjtpKyspIFBPV1tpXSA9IFBPV1tpIC0xIF0gKiBCQVNFOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBTW2ldID0gU1tpIC0xIF0gKiBCQVNFICsgYVtpXTsKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDE7IGktLSkgVFtpXSA9IFRbaSArMSBdICogQkFTRSArIGFbaV07CgogICAgd2hpbGUocS0tKSB7CiAgICAgICAgaW50IGlkOyBjaW4gPj4gaWQ7CiAgICAgICAgYVtpZF0gPSAwOwogICAgICAgIGludCBhbnMgPSAwOwogICAgICAgIGZvciAoaW50IGwgPSAxLCByID0gMTsgciA8PSBuOyByKyspIHsKICAgICAgICAgICAgaWYgKGFbcl0gPT0gMCkgewogICAgICAgICAgICAgICAgYW5zID0gbWF4KGFucywgY2FsYyhsLCByIC0gMSkpOwogICAgICAgICAgICAgICAgbCA9IHIgKyAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAociA9PSBuICYmIGFbcl0pIGFucyA9IG1heChhbnMsIGNhbGMobCwgcikpOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGFucyA8PCAiXG4iOwogICAgfQp9Cn0vLy8Kc2lnbmVkIG1haW4oKSB7CiAgICBjaW4udGllKE5VTEwpLT5zeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjb3V0LnRpZShOVUxMKTsKICAgIGlmIChpZnN0cmVhbSgiVEVULmlucCIpKSB7CiAgICAgICAgZnJlb3BlbigiVEVULmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIlRFVC5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gbiA+PiBxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKICAgIGNvbXByZXNzKCk7Ci8vICAgIGZvciAoaW50IGk9IDE7IGkgPD0gbjsgaSsrKSBjZXJyIDw8IGFbaV0gPDwgIiAiOyBjZXJyIDw8ICJcbiI7CiAgICByZXR1cm4gc3ViMjo6c29sdmUoKSwgMDsKLy8gICAgaWYgKG4gPD0gMjAwICYmIHEgPT0gMSkgcmV0dXJuIHN1YjE6OnNvbHZlKCksIDA7Ci8vICAgIGlmIChuIDw9IDIwMDAgJiYgcSA9PSAxKSByZXR1cm4gc3ViMTo6c29sdmUoKSwgMDsKICAgIHJldHVybiAwOwp9Cg==