#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,w,u[10010],v[10010],fa[10010],x,y,dp[10010];
ll find(ll x){
if(fa[x]==x) return x;
return fa[x]=find(fa[x]);
}
void hb(ll x,ll y){
ll x1=find(x),y1=find(y);
fa[x1]=y1;
}
int main(){
scanf("%lld%lld%lld",&n,&m,&w);
for(int i=1;i<=n;i++) fa[i]=i;
for(int i=1;i<=n;i++) scanf("%lld%lld",&u[i],&v[i]);
for(int i=1;i<=m;i++){
scanf("%lld%lld",&x,&y);
if(find(x)!=find(y)){
hb(x,y);
ll DG=find(x);
u[DG]+=u[y];
v[DG]+=v[y];
}
}
// for(int i=1;i<=n;i++){
// if(fa[i]==i) cout<<u[i]<<" "<<v[i]<<endl;
// }
for(int i=1;i<=n;i++){
if(fa[i]==i){
for(int j=w;j>=u[i];j--)
dp[j]=max(dp[j],dp[j-u[i]]+v[i]);
}
}
printf("%lld",dp[w]);
return 0;
}