include
include
include
include
using namespace std; int n,v,t[100000],p[100000],x[100000],y[100000],e,f,m=0; vector a,b; int main(){ cin>>n>>v; for(int i=1;i<=n;i++){ cin>>t[i]>>p[i]; } for(int i=1;i<=n;i++){ if(t[i]==1){ a.push_back(p[i]); } else { b.push_back(p[i]); } } sort(a.rbegin(),a.rend()); sort(b.rbegin(),b.rend()); a.insert(a.begin(),0); b.insert(b.begin(),0); x[1]=a[1]; y[1]=b[1]; for(int i=2;i<a.size();i++){ x[i]=x[i-1]+a[i]; } for(int i=2;i<b.size();i++){ y[i]=y[i-1]+b[i]; } x[0]=0; y[0]=0; for(int i=1;i<a.size();i++){ cout<<x[i]<<" "; } cout<<endl; for(int i=1;i<b.size();i++){ cout<<y[i]<<" "; } for(int i=0;i<a.size();i++){ f=(v-a[i])/2; if(b.size()<f){ f=b.size(); } e=x[i-1]+y[f-1]; if(e>m){ m=e; } } cout<<m;
}








