#include <bits/stdc++.h>
#define ll long long
#define sti string
#define bit(n,i) ((n>>i) &1)
#define itachi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define maxn 500500
#define fi first
#define se second
#define int long long
using namespace std;
vector<pair<int,int>> seg[4*maxn];
int val[maxn];
pair<int,int> edge[maxn];
struct node {
int u,v,sz_u,numedge_u,Min_u,sum_u,ans;
};
int m;
struct DSU {
vector<int> par,sz,numedge,Min,sum;
vector<node> st;
int ans=0;
int n;
int is_bipar;
DSU(int _n=0){
n=_n;
par.assign(n+5,0);
sz.assign(n+5,1);
numedge.assign(n+5,0);
Min.assign(n+5,0);
sum.assign(n+5,0);
for(int i=1;i<=n;i++) {
par[i]=i;
Min[i]=val[i];
sum[i]=val[i];
}
ans=0;
}
int find_par(int u){
while(u!=par[u]){
u=par[u];
}
return u;
}
int get(int r) {
if(numedge[r] < sz[r]) return sum[r] - Min[r];
return sum[r];
}
void join(int u,int v){
int ru =find_par(u);
int rv =find_par(v);
if(ru==rv){
st.push_back({ru,-1,sz[ru],numedge[ru],Min[ru],sum[ru],ans});
ans -= get(ru);
numedge[ru]++;
ans += get(ru);
return;
}
if(sz[ru]<sz[rv]){
swap(ru,rv);
}
st.push_back({ru,rv,sz[ru],numedge[ru],Min[ru],sum[ru],ans});
ans -= get(ru);
ans -= get(rv);
par[rv]=ru;
sz[ru]+=sz[rv];
numedge[ru] += numedge[rv]+1;
Min[ru] = min(Min[ru],Min[rv]);
sum[ru] += sum[rv];
ans += get(ru);
}
void rollback(int Time){
while((int)st.size()>Time){
auto [u,v,sz_u,numedge_u,Min_ru,Sum_ru,old_ans]=st.back();
st.pop_back();
ans = old_ans;
if(v==-1) {
numedge[u] = numedge_u;
} else {
par[v]=v;
sz[u]=sz_u;
numedge[u] = numedge_u;
Min[u] = Min_ru;
sum[u] = Sum_ru;
}
}
}
};
void update(int id,int l,int r,int u,int v,pair<int,int> edge){
if(l>r || u>v || l>v || r<u) return ;
if(u<=l && r<=v){
seg[id].push_back(edge);
return ;
}
int m=(l+r)/2;
update(id*2,l,m,u,v,edge);
update(id*2+1,m+1,r,u,v,edge);
}
struct Query {
int opt;
int u, v;
};
DSU dsu ;
vector<int> ans;
Query que[maxn];
int n,k;
void dfs(int id, int l, int r) {
int snap = dsu.st.size();
for(auto [u,v] : seg[id]) dsu.join(u,v);
if(l == r) {
if(l>1) ans.push_back(dsu.ans);
}
else {
int mid = (l + r) >> 1;
dfs(id << 1, l, mid);
dfs(id << 1 | 1, mid + 1, r);
}
dsu.rollback(snap);
}
map<pair<int,int>,int> start;
signed main()
{
itachi
cin>>n>>m>>k;
for(int i=1;i<=n;i++) cin>>val[i];
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
if(u>v) swap(u,v);
edge[i]={u,v};
start[{u,v}]=1;
}
dsu = DSU(n);
int idans=1;
for(int i = 2; i <= k+1; i++) {
int c,id;
cin>>c>>id;
int u = edge[id].fi;
int v = edge[id].se;
if(u > v) swap(u, v);
if(c == 2) {
start[{u, v}] = i ;
}
else {
int L = start[{u, v}];
start.erase({u, v});
update(1, 1, k+1 ,L, i-1 ,{u, v});
start[{u,v}] = 0;
}
}
for(auto &it : start) {
auto [e, L] = it;
if(start[e] > 0 ) update(1, 1, k+1 ,L, k+1,{e.fi, e.se});
}
dfs(1, 1, k+1 );
for(int x : ans)
cout << x << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3RpIHN0cmluZwojZGVmaW5lIGJpdChuLGkpICgobj4+aSkgJjEpCiNkZWZpbmUgaXRhY2hpIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBtYXhuIDUwMDUwMAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgaW50IGxvbmcgbG9uZwoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gc2VnWzQqbWF4bl07CmludCB2YWxbbWF4bl07CnBhaXI8aW50LGludD4gZWRnZVttYXhuXTsKCnN0cnVjdCBub2RlIHsKICBpbnQgdSx2LHN6X3UsbnVtZWRnZV91LE1pbl91LHN1bV91LGFuczsKfTsKCmludCBtOwoKc3RydWN0IERTVSB7CiAgIHZlY3RvcjxpbnQ+IHBhcixzeixudW1lZGdlLE1pbixzdW07CiAgIHZlY3Rvcjxub2RlPiBzdDsKICAgaW50IGFucz0wOwogICBpbnQgbjsKICAgaW50IGlzX2JpcGFyOwoKICAgRFNVKGludCBfbj0wKXsKICAgICAgbj1fbjsKICAgICAgcGFyLmFzc2lnbihuKzUsMCk7CiAgICAgIHN6LmFzc2lnbihuKzUsMSk7CiAgICAgIG51bWVkZ2UuYXNzaWduKG4rNSwwKTsKICAgICAgTWluLmFzc2lnbihuKzUsMCk7CiAgICAgIHN1bS5hc3NpZ24obis1LDApOwoKCiAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKSB7CiAgICAgICAgICBwYXJbaV09aTsKICAgICAgICAgIE1pbltpXT12YWxbaV07CiAgICAgICAgICBzdW1baV09dmFsW2ldOwogICAgICB9CiAgICAgIGFucz0wOwogICB9CgogICBpbnQgZmluZF9wYXIoaW50IHUpewogICAgICB3aGlsZSh1IT1wYXJbdV0pewogICAgICAgICB1PXBhclt1XTsKICAgICAgfQogICAgICByZXR1cm4gdTsKICAgfQoKICAgaW50IGdldChpbnQgcikgewogICAgICBpZihudW1lZGdlW3JdIDwgc3pbcl0pIHJldHVybiBzdW1bcl0gLSBNaW5bcl07CiAgICAgIHJldHVybiBzdW1bcl07CiAgIH0KCiAgIHZvaWQgam9pbihpbnQgdSxpbnQgdil7CiAgICAgIGludCBydSA9ZmluZF9wYXIodSk7CiAgICAgIGludCBydiA9ZmluZF9wYXIodik7CgogICAgICBpZihydT09cnYpewogICAgICAgICBzdC5wdXNoX2JhY2soe3J1LC0xLHN6W3J1XSxudW1lZGdlW3J1XSxNaW5bcnVdLHN1bVtydV0sYW5zfSk7CiAgICAgICAgIGFucyAtPSBnZXQocnUpOwogICAgICAgICBudW1lZGdlW3J1XSsrOwogICAgICAgICBhbnMgKz0gZ2V0KHJ1KTsKICAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBpZihzeltydV08c3pbcnZdKXsKICAgICAgICAgc3dhcChydSxydik7CiAgICAgIH0KCiAgICAgIHN0LnB1c2hfYmFjayh7cnUscnYsc3pbcnVdLG51bWVkZ2VbcnVdLE1pbltydV0sc3VtW3J1XSxhbnN9KTsKICAgICAgYW5zIC09IGdldChydSk7CiAgICAgIGFucyAtPSBnZXQocnYpOwogICAgICBwYXJbcnZdPXJ1OwogICAgICBzeltydV0rPXN6W3J2XTsKICAgICAgbnVtZWRnZVtydV0gKz0gbnVtZWRnZVtydl0rMTsKICAgICAgTWluW3J1XSA9IG1pbihNaW5bcnVdLE1pbltydl0pOwogICAgICBzdW1bcnVdICs9IHN1bVtydl07CgogICAgICBhbnMgKz0gZ2V0KHJ1KTsKICAgfQoKICAgdm9pZCByb2xsYmFjayhpbnQgVGltZSl7CiAgICAgIHdoaWxlKChpbnQpc3Quc2l6ZSgpPlRpbWUpewogICAgICAgICBhdXRvIFt1LHYsc3pfdSxudW1lZGdlX3UsTWluX3J1LFN1bV9ydSxvbGRfYW5zXT1zdC5iYWNrKCk7CiAgICAgICAgIHN0LnBvcF9iYWNrKCk7CgogICAgICAgICBhbnMgPSBvbGRfYW5zOwoKICAgICAgICAgaWYodj09LTEpIHsKICAgICAgICAgICAgIG51bWVkZ2VbdV0gPSBudW1lZGdlX3U7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwYXJbdl09djsKICAgICAgICAgICAgIHN6W3VdPXN6X3U7CiAgICAgICAgICAgICBudW1lZGdlW3VdID0gbnVtZWRnZV91OwogICAgICAgICAgICAgTWluW3VdID0gTWluX3J1OwogICAgICAgICAgICAgc3VtW3VdID0gU3VtX3J1OwogICAgICAgICB9CiAgICAgIH0KICAgfQp9OwoKdm9pZCB1cGRhdGUoaW50IGlkLGludCBsLGludCByLGludCB1LGludCB2LHBhaXI8aW50LGludD4gZWRnZSl7CiAgIGlmKGw+ciB8fCB1PnYgfHwgbD52IHx8IHI8dSkgcmV0dXJuIDsKICAgaWYodTw9bCAmJiByPD12KXsKICAgICAgc2VnW2lkXS5wdXNoX2JhY2soZWRnZSk7CiAgICAgIHJldHVybiA7CiAgIH0KICAgaW50IG09KGwrcikvMjsKICAgdXBkYXRlKGlkKjIsbCxtLHUsdixlZGdlKTsKICAgdXBkYXRlKGlkKjIrMSxtKzEscix1LHYsZWRnZSk7Cn0KCnN0cnVjdCBRdWVyeSB7CiAgIGludCBvcHQ7CiAgIGludCB1LCB2Owp9OwoKRFNVIGRzdSA7CnZlY3RvcjxpbnQ+IGFuczsKUXVlcnkgcXVlW21heG5dOwppbnQgbixrOwoKdm9pZCBkZnMoaW50IGlkLCBpbnQgbCwgaW50IHIpIHsKICAgIGludCBzbmFwID0gZHN1LnN0LnNpemUoKTsKICAgIGZvcihhdXRvIFt1LHZdIDogc2VnW2lkXSkgZHN1LmpvaW4odSx2KTsKICAgIGlmKGwgPT0gcikgewogICAgICAgIGlmKGw+MSkgYW5zLnB1c2hfYmFjayhkc3UuYW5zKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGludCBtaWQgPSAobCArIHIpID4+IDE7CiAgICAgICAgZGZzKGlkIDw8IDEsIGwsIG1pZCk7CiAgICAgICAgZGZzKGlkIDw8IDEgfCAxLCBtaWQgKyAxLCByKTsKICAgIH0KICAgIGRzdS5yb2xsYmFjayhzbmFwKTsKfQoKbWFwPHBhaXI8aW50LGludD4saW50PiBzdGFydDsKCnNpZ25lZCBtYWluKCkKewogICAgaXRhY2hpCiAgICBjaW4+Pm4+Pm0+Pms7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykgY2luPj52YWxbaV07CiAgICBmb3IoaW50IGk9MTtpPD1tO2krKyl7CiAgICAgICAgaW50IHUsdjsKICAgICAgICBjaW4+PnU+PnY7CiAgICAgICAgaWYodT52KSBzd2FwKHUsdik7CiAgICAgICAgZWRnZVtpXT17dSx2fTsKICAgICAgICBzdGFydFt7dSx2fV09MTsKICAgIH0KICAgIGRzdSA9IERTVShuKTsKICAgIGludCBpZGFucz0xOwogICAgZm9yKGludCBpID0gMjsgaSA8PSBrKzE7IGkrKykgewogICAgICAgIGludCBjLGlkOwogICAgICAgIGNpbj4+Yz4+aWQ7CiAgICAgICAgaW50IHUgPSBlZGdlW2lkXS5maTsKICAgICAgICBpbnQgdiA9IGVkZ2VbaWRdLnNlOwogICAgICAgIGlmKHUgPiB2KSBzd2FwKHUsIHYpOwogICAgICAgIGlmKGMgPT0gMikgewogICAgICAgICAgICBzdGFydFt7dSwgdn1dID0gaSA7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpbnQgTCA9IHN0YXJ0W3t1LCB2fV07CiAgICAgICAgICAgIHN0YXJ0LmVyYXNlKHt1LCB2fSk7CgogICAgICAgICAgICB1cGRhdGUoMSwgMSwgaysxICxMLCBpLTEgLHt1LCB2fSk7CiAgICAgICAgICAgIHN0YXJ0W3t1LHZ9XSA9IDA7CiAgICAgICAgfQogICAgfQoKICAgIGZvcihhdXRvICZpdCA6IHN0YXJ0KSB7CiAgICAgICAgYXV0byBbZSwgTF0gPSBpdDsKICAgICAgIGlmKHN0YXJ0W2VdID4gMCApIHVwZGF0ZSgxLCAxLCBrKzEgLEwsIGsrMSx7ZS5maSwgZS5zZX0pOwogICAgfQoKICAgIGRmcygxLCAxLCBrKzEgKTsKICAgIGZvcihpbnQgeCA6IGFucykKICAgICAgICBjb3V0IDw8IHggPDwgJ1xuJzsKICAgIHJldHVybiAwOwp9Cg==