```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int a[100010],zdl[100010],zl[100010];
int maxn;
int szdl=0,szl=0;
void dfs(int dep){
if(dep>n){
if(szdl>maxn) maxn=szdl;
}
else{
for(int i=1;i<=2;i++){
a[dep]=2-i;
if(szl+zl[dep]*a[dep]<=m){
szdl=szdl+a[dep]*zdl[dep];
szl=szl+a[dep]*zl[dep];
dfs(dep+1);
szdl=szdl-a[dep]*zdl[dep];
szl=szl-a[dep]*zl[dep];
}
}
}
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
cin>>zdl[i]>>zl[i];
}
dfs(1);
if(maxn-k<0) {
cout<<"no"<<endl;
cout<<maxn;
}
else {
cout<<"yes"<<endl;
cout<<maxn;
}
return 0;
}