#include <bits/stdc++.h>
using namespace std;
int n,m,o,w[10001],c[10001],a,b,fa[10001],f[10001];
int find (int a) {
return fa[a]==a?a:fa[a]=find(fa[a]);
}
int main()
{
cin>>n>>m>>o;
for(int i=1;i<=n;i++) {
scanf("%d%d",&w[i],&c[i]); fa[i]=i;
}
for(int i=1;i<=m;i++) {
scanf("%d%d",&a,&b);
int fx=find(a),fy=find(b);
if(fx!=fy) fa[fx]=fy,w[fx]+=w[fy],c[fx]=c[fy];
}
for(int i=1;i<=n;i++)
if(fa[i]==i){
for(int j=o;j>=w[i];j--) f[j]=max(f[j],f[j-w[i]]+c[i]);
}
cout<<f[o];
return 0;
}