#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e4+5;
int n,m,ma,u,v;
int dp[N],fa[N],fc[N],fv[N];
inline int f(int x){
if(fa[x]==x) return x;
int tmp=f(fa[x]);
fc[tmp]+=fc[fa[x]];
fv[tmp]+=fv[fa[x]];
fa[x]=tmp;
return tmp;
}
bool vis[N];
vector< pair<int,int> > obj;
int main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>m>>ma;
for(int i=1;i<=n;i++) cin>>fc[i]>>fv[i];
for(int i=1;i<=n;i++) fa[i]=i;
for(int i=1;i<=m;i++){
cin>>u>>v;
int f_a=f(u);
int f_b=f(v);
if(f_a==f_b) continue;
else{
fa[f_a]=f_b;
fc[f_b]+=fc[f_a];
fv[f_b]+=fv[f_a];
}
}
for(int i=1;i<=n;i++){
int fi=f(i);
if(vis[fi]) continue;
vis[fi]=true;
obj.push_back({fc[fi],fv[fi]});
}
for(pair<int,int> i:obj){
for(int j=ma;j>=i.first;j--){
dp[j]=max(dp[j],dp[j-i.first]+i.second);
}
}
cout<<dp[ma];
return 0;
}