?for(int i=0;i
??int tmp=0;?
??for(int j=i;j
????if(tmp+v[j]<=m){
?????flag[j]=1;
?????tmp+=v[j];
????}
???}
??}
??cnt++;
?}
?return cnt;
}
int TSP(){
?for(int i=0;i<(1<
???for(int j=0;j
?????for(int k=0;k
?}
?for(int i=0;i<(1<
???for(int j=i&(i-1);j;j=i&(j-1))
????best[i]=min(best[i],best[j]+best[(i-j)|1]);
?return best[(1<
int main(){
?while(scanf("%d%d",&n,&m)!=EOF){
??for(int i=0;i
??Init();
??int ans1=slove();
??if(ans1==-1) {printf("-1 -1\n");continue;}
??printf("%d %d\n",ans1,TSP());
?}
?return 0;
}