#include
using namespace std;
int memo[1000][1000]={0};
int knapSack(int weight[],int value[],int index,int capacity){
if(index<=0 || capacity<=0) return 0;
if(memo[index][capacity] !=0){
return memo[index][capacity];
}
// 不包含第index个物品所得的价值
int res = knapSack(weight,value,index-1,capacity);
// 包含第index个物品所得的价值
if(weight[index]<=capacity)
{
res = max(res,value[index]+knapSack(weight,value,index-1,capacity-weight[index]));
}
//添加子问题的解,便于下次直接使用
memo[index][capacity] = res;
return res;
}
int main(){
int n,c; // 第一行为n值和c值,表示n件物品和背包容量c
cin>>n>>c;
int weight[1000];
int value[1000];
for(int i=1;i<=n;i++){ //每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值。
cin>>weight[i]>>value[i];
}
cout<endl;
}