#define MAXH 2000
#define MAXW 20
#define MAXINT 543894740
using namespace std;
int map[MAXH][MAXW],w;
int main (void){
memset(map,0,sizeof(map));
int n,w;
cin>>n>>w;
int /*level=0,*/highest=-MAXINT;
for (int i=0;i<n;i++){
int a;cin>>a;
int min=MAXINT,minj=-1;
for (int j=0;j<=w-a;j++){
bool isok=false;
int lev=-1,x;
while (!isok){
lev++;
isok=true;
for (int k=j;k<j+a;k++)
if (map[lev][k]){
isok=false;
break;
}
}
if (lev<min) min=lev,minj=j;
}
for (int j=min;j<min+a;j++)
for (int k=minj;k<minj+a;k++)
map[j][k]=1;
if (min+a>highest)
highest=min+a;
}
cout<<highest;
//while(1);
return 0;
}