#include<bits/stdc++.h>
using namespace std;
#define N 10005
long long n,m,W,w[N],v[N],fa[N],x,y,dp[N];
long long find(long long x){return x==fa[x]?x:fa[x]=find(fa[x]);}
int main(){
cin>>n>>m>>W;
for(int i=1;i<=n;i++){
cin>>w[i]>>v[i];
fa[i]=i;
}
for(int i=1;i<=m;i++){
cin>>x>>y;
if(find(x)==find(y)) continue;
fa[find(y)]=find(x),w[find(x)]+=w[find(y)],v[find(x)]+=v[find(y)];
}
for(int i=1;i<=n;i++){
if(fa[i]==i){
for(int j=W;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
}
// for(int i=1;i<=n;i++){
// cout<<"fa["<<i<<"]="<<fa[i]<<",w["<<i<<"]="<<w[i]<<",v["<<i<<"]="<<v[i]<<endl;
// }
cout<<dp[W]<<endl;
return 0;
}
样例都没过