#include<bits/stdc++.h>
using namespace std;
int n,p,S;
const int N=1e4+5;
int dp[1000010];
int w[N],v[N];
int hhh=-1,lll=1e8;
bool check(int x){
if(x<hhh) return false;
for(int i=1;i<=n;i++){
for(int j=S;j>=w[i];j--){
dp[j]=max(dp[j],(dp[j-w[i]]+v[i]));
if(dp[j]>S) return true;
}
}
return false;
}
int main() {
cin>>n>>p>>S;
for(int i=1;i<=n;i++){
cin>>w[i]>>v[i];
hhh=max(hhh,w[i]);
lll=min(lll,w[i]);
}
int l=lll,r=hhh;
int mid=(l+r)/2;
while(l<r){
mid=(l+r)/2;
if(check(mid)){
r=mid;
}else{
l=mid+1;
}
}
if(mid){
cout<<"No Solution!";
}else{
cout<<mid+1;
}
return 0;
}