ll@n,@W,@d,a[2][5001]{},z=0;
a[0...1][1..W]=-ll_inf;
rep(n){
	ll@t,@w,@v;
	rrep(i,W+1-w){
		a[t][i+w]>?=a[t][i]+v;
	}
}
rep(i,W+1){
	rep(j,W+1){
		if(i+j<=W&&-d<=i-j<=d){
			z>?=a[0][i]+a[1][j];
		}
	}
}
wt(z);