#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define fi first
#define se second
#define el '\n'
const ll maxN = 1e6;
int n, query;
int a[maxN+5];
namespace subtask1
{
ll C2(int N)
{
return (ll) N*(N-1)/2;
}
ll cal(int L, int R)
{
map<int,int> dd;
int len = R-L+1;
for(int i=L; i<=R; i++) dd[a[i]]++;
ll res = 0;
for(pii c : dd)
{
res+= C2(c.se);
}
return (ll)(1 + C2(len) - res);
}
set<pii> seg;
multiset<ll> val;
void solve()
{
seg.insert({1,n});
val.insert(cal(1,n));
while(query--)
{
int pos; cin >> pos;
auto it = seg.upper_bound({pos,(int)1e9});
it--;
int L = it -> fi;
int R = it -> se;
val.erase(val.find(cal(L,R)));
seg.erase(it);
if(L<=pos-1)
{
val.insert(cal(L,pos-1));
seg.insert({L, pos - 1});
}
if(pos+1<=R)
{
val.insert(cal(pos+1,R));
seg.insert({pos+1,R});
}
if(val.empty()) cout<<0<<el;
else cout<<*val.rbegin()<<el;
}
}
}
namespace subtask2
{
int sz[maxN+5], par[maxN+5], alive[maxN+5];
int Query[maxN+5];
ll bad[maxN+5];
multiset<ll> val;
unordered_map<int,int> cnt[maxN+5];
ll ans[maxN+5];
ll C2(ll N)
{
return N*(N-1)/2;
}
int findroot(int u)
{
if(u == par[u]) return u;
return par[u] = findroot(par[u]);
}
ll cal(int u)
{
u = findroot(u);
return 1LL + C2(sz[u]) - bad[u];
}
void add_val(int u)
{
u = findroot(u);
val.insert(cal(u));
}
void del_val(int u)
{
u = findroot(u);
val.erase(val.find(cal(u)));
}
void dsu(int u, int v)
{
u = findroot(u);
v = findroot(v);
if(u == v) return;
if(cnt[u].size() < cnt[v].size())
swap(u,v);
del_val(u);
del_val(v);
par[v] = u;
sz[u] += sz[v];
for(auto f : cnt[v])
{
int num = f.fi;
int sl = f.se;
bad[u] -= C2(cnt[u][num]);
cnt[u][num] += sl;
bad[u] += C2(cnt[u][num]);
}
add_val(u);
}
void solve()
{
for(int i=1; i<=n; i++)
{
par[i] = i;
sz[i] = 1;
alive[i] = 1;
}
for(int i=1; i<=query; i++)
{
cin >> Query[i];
alive[Query[i]] = 0;
}
for(int i=1; i<=n; i++)
{
if(alive[i])
{
cnt[i][a[i]] = 1;
bad[i] = 0;
add_val(i);
}
}
for(int i=1; i<n; i++)
{
if(alive[i] && alive[i+1])
dsu(i,i+1);
}
for(int i=query; i>=1; i--)
{
if(val.empty()) ans[i] = 0;
else ans[i] = *val.rbegin();
int u = Query[i];
alive[u] = 1;
par[u] = u;
sz[u] = 1;
bad[u] = 0;
cnt[u].clear();
cnt[u][a[u]] = 1;
add_val(u);
if(u > 1 && alive[u-1])
dsu(u,u-1);
if(u < n && alive[u+1])
dsu(u,u+1);
}
for(int i=1; i<=query; i++)
cout << ans[i] << el;
}
};
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
freopen("TET.INP","r",stdin);
freopen("TET.OUT","w",stdout);
cin >> n >> query;
for(int i=1; i<=n; i++) cin >> a[i];
if(n<=5000)subtask1::solve();
else subtask2::solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcgCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGVsICdcbicKY29uc3QgbGwgbWF4TiA9IDFlNjsKaW50IG4sIHF1ZXJ5OwppbnQgYVttYXhOKzVdOwoKCgpuYW1lc3BhY2Ugc3VidGFzazEKewogICAgbGwgQzIoaW50IE4pCiAgICB7CiAgICAgICAgcmV0dXJuIChsbCkgTiooTi0xKS8yOwogICAgfQogICAgCiAgICBsbCBjYWwoaW50IEwsIGludCBSKQogICAgewogICAgICAgIG1hcDxpbnQsaW50PiBkZDsKICAgICAgICBpbnQgbGVuID0gUi1MKzE7CiAgICAgICAgZm9yKGludCBpPUw7IGk8PVI7IGkrKykgZGRbYVtpXV0rKzsKICAgICAgICBsbCByZXMgPSAwOwogICAgICAgIGZvcihwaWkgYyA6IGRkKQogICAgICAgIHsKICAgICAgICAgICAgcmVzKz0gQzIoYy5zZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAobGwpKDEgKyBDMihsZW4pIC0gcmVzKTsKICAgIH0KICAgIAogICAgc2V0PHBpaT4gc2VnOwogICAgbXVsdGlzZXQ8bGw+IHZhbDsKICAgIHZvaWQgc29sdmUoKQogICAgewogICAgICAgIHNlZy5pbnNlcnQoezEsbn0pOwogICAgICAgIHZhbC5pbnNlcnQoY2FsKDEsbikpOwogICAgICAgIHdoaWxlKHF1ZXJ5LS0pCiAgICAgICAgewogICAgICAgICAgICBpbnQgcG9zOyBjaW4gPj4gcG9zOwogICAgICAgICAgICBhdXRvIGl0ID0gc2VnLnVwcGVyX2JvdW5kKHtwb3MsKGludCkxZTl9KTsKICAgICAgICAgICAgaXQtLTsKICAgICAgICAgICAgaW50IEwgPSBpdCAtPiBmaTsKICAgICAgICAgICAgaW50IFIgPSBpdCAtPiBzZTsKICAgICAgICAgICAgdmFsLmVyYXNlKHZhbC5maW5kKGNhbChMLFIpKSk7CiAgICAgICAgICAgIHNlZy5lcmFzZShpdCk7CiAgICAgICAgICAgIGlmKEw8PXBvcy0xKSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFsLmluc2VydChjYWwoTCxwb3MtMSkpOwogICAgICAgICAgICAgICAgc2VnLmluc2VydCh7TCwgcG9zIC0gMX0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKHBvcysxPD1SKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YWwuaW5zZXJ0KGNhbChwb3MrMSxSKSk7CiAgICAgICAgICAgICAgICBzZWcuaW5zZXJ0KHtwb3MrMSxSfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYodmFsLmVtcHR5KCkpIGNvdXQ8PDA8PGVsOwogICAgICAgICAgICBlbHNlIGNvdXQ8PCp2YWwucmJlZ2luKCk8PGVsOwogICAgICAgIH0KICAgIH0gICAgCn0KbmFtZXNwYWNlIHN1YnRhc2syCnsKICAgIGludCBzelttYXhOKzVdLCBwYXJbbWF4Tis1XSwgYWxpdmVbbWF4Tis1XTsKICAgIGludCBRdWVyeVttYXhOKzVdOwogICAgbGwgYmFkW21heE4rNV07CiAgICBtdWx0aXNldDxsbD4gdmFsOwogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50PiBjbnRbbWF4Tis1XTsKICAgIGxsIGFuc1ttYXhOKzVdOwoKICAgIGxsIEMyKGxsIE4pCiAgICB7CiAgICAgICAgcmV0dXJuIE4qKE4tMSkvMjsKICAgIH0KCiAgICBpbnQgZmluZHJvb3QoaW50IHUpCiAgICB7CiAgICAgICAgaWYodSA9PSBwYXJbdV0pIHJldHVybiB1OwogICAgICAgIHJldHVybiBwYXJbdV0gPSBmaW5kcm9vdChwYXJbdV0pOwogICAgfQoKICAgIGxsIGNhbChpbnQgdSkKICAgIHsKICAgICAgICB1ID0gZmluZHJvb3QodSk7CiAgICAgICAgcmV0dXJuIDFMTCArIEMyKHN6W3VdKSAtIGJhZFt1XTsKICAgIH0KCiAgICB2b2lkIGFkZF92YWwoaW50IHUpCiAgICB7CiAgICAgICAgdSA9IGZpbmRyb290KHUpOwogICAgICAgIHZhbC5pbnNlcnQoY2FsKHUpKTsKICAgIH0KCiAgICB2b2lkIGRlbF92YWwoaW50IHUpCiAgICB7CiAgICAgICAgdSA9IGZpbmRyb290KHUpOwogICAgICAgIHZhbC5lcmFzZSh2YWwuZmluZChjYWwodSkpKTsKICAgIH0KCiAgICB2b2lkIGRzdShpbnQgdSwgaW50IHYpCiAgICB7CiAgICAgICAgdSA9IGZpbmRyb290KHUpOwogICAgICAgIHYgPSBmaW5kcm9vdCh2KTsKCiAgICAgICAgaWYodSA9PSB2KSByZXR1cm47CgogICAgICAgIGlmKGNudFt1XS5zaXplKCkgPCBjbnRbdl0uc2l6ZSgpKQogICAgICAgICAgICBzd2FwKHUsdik7CgogICAgICAgIGRlbF92YWwodSk7CiAgICAgICAgZGVsX3ZhbCh2KTsKCiAgICAgICAgcGFyW3ZdID0gdTsKCiAgICAgICAgc3pbdV0gKz0gc3pbdl07CgogICAgICAgIGZvcihhdXRvIGYgOiBjbnRbdl0pCiAgICAgICAgewogICAgICAgICAgICBpbnQgbnVtID0gZi5maTsKICAgICAgICAgICAgaW50IHNsID0gZi5zZTsKICAgICAgICAgICAgYmFkW3VdIC09IEMyKGNudFt1XVtudW1dKTsKICAgICAgICAgICAgY250W3VdW251bV0gKz0gc2w7CiAgICAgICAgICAgIGJhZFt1XSArPSBDMihjbnRbdV1bbnVtXSk7CiAgICAgICAgfQoKICAgICAgICBhZGRfdmFsKHUpOwogICAgfQoKICAgIHZvaWQgc29sdmUoKQogICAgewogICAgICAgIAogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBwYXJbaV0gPSBpOwogICAgICAgICAgICBzeltpXSA9IDE7CiAgICAgICAgICAgIGFsaXZlW2ldID0gMTsKICAgICAgICB9CgogICAgICAgIAogICAgICAgIGZvcihpbnQgaT0xOyBpPD1xdWVyeTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IFF1ZXJ5W2ldOwogICAgICAgICAgICBhbGl2ZVtRdWVyeVtpXV0gPSAwOwogICAgICAgIH0KCiAgICAgICAgCiAgICAgICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFsaXZlW2ldKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjbnRbaV1bYVtpXV0gPSAxOwogICAgICAgICAgICAgICAgYmFkW2ldID0gMDsKCiAgICAgICAgICAgICAgICBhZGRfdmFsKGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0xOyBpPG47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFsaXZlW2ldICYmIGFsaXZlW2krMV0pCiAgICAgICAgICAgICAgICBkc3UoaSxpKzEpOwogICAgICAgIH0KICAgICAgICBmb3IoaW50IGk9cXVlcnk7IGk+PTE7IGktLSkKICAgICAgICB7CiAgICAgICAgICAgIGlmKHZhbC5lbXB0eSgpKSBhbnNbaV0gPSAwOwogICAgICAgICAgICBlbHNlIGFuc1tpXSA9ICp2YWwucmJlZ2luKCk7CiAgICAgICAgICAgIGludCB1ID0gUXVlcnlbaV07CiAgICAgICAgICAgIGFsaXZlW3VdID0gMTsKICAgICAgICAgICAgcGFyW3VdID0gdTsKICAgICAgICAgICAgc3pbdV0gPSAxOwogICAgICAgICAgICBiYWRbdV0gPSAwOwogICAgICAgICAgICBjbnRbdV0uY2xlYXIoKTsKICAgICAgICAgICAgY250W3VdW2FbdV1dID0gMTsKICAgICAgICAgICAgYWRkX3ZhbCh1KTsKICAgICAgICAgICAgaWYodSA+IDEgJiYgYWxpdmVbdS0xXSkKICAgICAgICAgICAgICAgIGRzdSh1LHUtMSk7CiAgICAgICAgICAgIGlmKHUgPCBuICYmIGFsaXZlW3UrMV0pCiAgICAgICAgICAgICAgICBkc3UodSx1KzEpOwogICAgICAgIH0KICAgICAgICBmb3IoaW50IGk9MTsgaTw9cXVlcnk7IGkrKykKICAgICAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgZWw7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CiAgICBmcmVvcGVuKCJURVQuSU5QIiwiciIsc3RkaW4pOwogICAgZnJlb3BlbigiVEVULk9VVCIsInciLHN0ZG91dCk7CiAgICBjaW4gPj4gbiA+PiBxdWVyeTsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspIGNpbiA+PiBhW2ldOwogICAgaWYobjw9NTAwMClzdWJ0YXNrMTo6c29sdmUoKTsKICAgIGVsc2Ugc3VidGFzazI6OnNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=