#include <bits/stdc++.h>
using namespace std ;
const int N = 30 ;
int n , b ;
int a[N] , c[N] ;
int choose[N] ;
int ans[N] ;
int res = 0 ;
void dq( int id , int cura , int curc ){
if ( id == n ){
if ( cura <= b && curc >= res ){
res = curc ;
for ( int i = 0 ; i < n ;i++ )
ans[i] = choose[i] ;
}
return ;
}
for ( int i = 0 ; i <= 1 ; i++ ){
choose[id] = i ;
dq( id + 1 , cura + i*a[id] , curc + i*c[id] ) ;
}
}
int main(){
cin >> n >> b ;
for ( int i = 0 ; i < n ; i++ )
cin >> a[i] >> c[i] ;
dq( 0 , 0 , 0 ) ;
cout << res << endl ;
for ( int i = 0 ; i < n ;i ++ )
cout << ans[i] << " " ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOwpjb25zdCBpbnQgTiA9IDMwIDsKaW50IG4gLCBiIDsKaW50IGFbTl0gLCBjW05dIDsKaW50IGNob29zZVtOXSA7CmludCBhbnNbTl0gOwppbnQgcmVzID0gMCA7CnZvaWQgZHEoIGludCBpZCAsIGludCBjdXJhICwgaW50IGN1cmMgKXsKICAgIGlmICggaWQgPT0gbiApewogICAgICAgIGlmICggY3VyYSA8PSBiICYmIGN1cmMgPj0gcmVzICl7CiAgICAgICAgICAgIHJlcyA9IGN1cmMgOwogICAgICAgICAgICBmb3IgKCBpbnQgaSA9IDAgOyBpIDwgbiA7aSsrICkKICAgICAgICAgICAgICAgIGFuc1tpXSA9IGNob29zZVtpXSA7CiAgICAgICAgfQogICAgICAgIHJldHVybiA7CiAgICB9CiAgICBmb3IgKCBpbnQgaSA9IDAgOyBpIDw9IDEgOyBpKysgKXsKICAgICAgICBjaG9vc2VbaWRdID0gaSA7CiAgICAgICAgZHEoIGlkICsgMSAsIGN1cmEgKyBpKmFbaWRdICwgY3VyYyArIGkqY1tpZF0gKSA7CiAgICB9Cn0KaW50IG1haW4oKXsKICAgIGNpbiA+PiBuID4+IGIgOwogICAgZm9yICggaW50IGkgPSAwIDsgaSA8IG4gOyBpKysgKQogICAgICAgIGNpbiA+PiBhW2ldID4+IGNbaV0gOwogICAgZHEoIDAgLCAwICwgMCApIDsKICAgIGNvdXQgPDwgcmVzIDw8IGVuZGwgOwogICAgZm9yICggaW50IGkgPSAwIDsgaSA8IG4gO2kgKysgKQogICAgICAgIGNvdXQgPDwgYW5zW2ldIDw8ICIgIiA7Cn0K