#include <iostream>
#include<bits/stdc++.h>
using namespace std;
bool check(vector<long long>&arr,long long limit,long long mid){
long long cnt=0;
long long sum=0;
for(int i=0;i<arr.size();i++){
sum+=arr[i];
if(sum>limit){
cnt++;
sum=arr[i];
}
}
cnt++;
if(mid>=cnt){
return true;
}
return false;
}
int main() {
long long n,x;
cin>>n>>x;
vector<long long>arr(n);
for(long long i=0;i<n;i++){
cin>>arr[i];
}
long long low=1;
long long high=1e9;
long long ans=0;
while(low<=high){
long long mid=low+(high-low)/2;
if(check(arr,x,mid)){
ans=mid;
high=mid-1;
}
else{
low=mid+1;
}
}
cout<<ans<<endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBjaGVjayh2ZWN0b3I8bG9uZyBsb25nPiZhcnIsbG9uZyBsb25nIGxpbWl0LGxvbmcgbG9uZyBtaWQpewoJCglsb25nIGxvbmcgY250PTA7Cglsb25nIGxvbmcgc3VtPTA7CgkKCWZvcihpbnQgaT0wO2k8YXJyLnNpemUoKTtpKyspewoJCgkJc3VtKz1hcnJbaV07CgkJCWlmKHN1bT5saW1pdCl7CgkJCWNudCsrOwoJCQlzdW09YXJyW2ldOwoJCX0KCX0KCWNudCsrOwoJCglpZihtaWQ+PWNudCl7CgkJcmV0dXJuIHRydWU7Cgl9CgkKCXJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CgkKCWxvbmcgbG9uZyBuLHg7CgljaW4+Pm4+Png7CgkKCXZlY3Rvcjxsb25nIGxvbmc+YXJyKG4pOwoJZm9yKGxvbmcgbG9uZyBpPTA7aTxuO2krKyl7CgkJY2luPj5hcnJbaV07Cgl9CgkKCQoJCglsb25nIGxvbmcgbG93PTE7Cglsb25nIGxvbmcgaGlnaD0xZTk7Cglsb25nIGxvbmcgYW5zPTA7CgkKCXdoaWxlKGxvdzw9aGlnaCl7CgkJCgkJbG9uZyBsb25nIG1pZD1sb3crKGhpZ2gtbG93KS8yOwoJCQoJCWlmKGNoZWNrKGFycix4LG1pZCkpewoJCQlhbnM9bWlkOwoJCQloaWdoPW1pZC0xOwoJCX0KCQllbHNlewoJCQlsb3c9bWlkKzE7CgkJfQoJfQoJCgljb3V0PDxhbnM8PGVuZGw7Cn0=