//Task: popcorn
//Author: Kinka Kirilova-Lupanova
#include <iostream>
using namespace std;
int n,k,s,a,b,c,i;
int p[100001];
bool can_eat(int t) // modelirane
{ int i,j,e;
j=1;
for (i=1; i<=k; i++)
{e=0;
while (j<=n && (e+p[j]+s-1)/s<=t)
{e=e+p[j];
j++;
}
}
return (j>n);
}
int main()
{cin>>n>>k>>s;
for (i=1; i<=n; i++) cin>>p[i];
a=1;
b=1000000001;
while (a<b) // dvoi4no tyrsene
{c=(b+a)/2;
if (can_eat(c)) b=c;
else a=c+1;
}
cout<<a<<endl;
return 0;
}
Ly9UYXNrOiBwb3Bjb3JuCi8vQXV0aG9yOiBLaW5rYSBLaXJpbG92YS1MdXBhbm92YQojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG4sayxzLGEsYixjLGk7CmludCBwWzEwMDAwMV07CmJvb2wgY2FuX2VhdChpbnQgdCkgLy8gbW9kZWxpcmFuZQp7IGludCAgaSxqLGU7CiAgaj0xOwogIGZvciAoaT0xOyBpPD1rOyBpKyspIAogICAge2U9MDsKICAgICB3aGlsZSAoajw9biAmJiAoZStwW2pdK3MtMSkvczw9dCkKICAgICAgIHtlPWUrcFtqXTsKICAgICAgICBqKys7CiAgICAgICB9CiAgICB9CiAgcmV0dXJuIChqPm4pOwp9CiAgIGludCBtYWluKCkKe2Npbj4+bj4+az4+czsKIGZvciAoaT0xOyBpPD1uOyBpKyspIGNpbj4+cFtpXTsKIGE9MTsKIGI9MTAwMDAwMDAwMTsKIHdoaWxlIChhPGIpICAvLyBkdm9pNG5vIHR5cnNlbmUKICAge2M9KGIrYSkvMjsKICAgIGlmIChjYW5fZWF0KGMpKSAgYj1jOwogICAgZWxzZSBhPWMrMTsKICAgfQogY291dDw8YTw8ZW5kbDsKIHJldHVybiAwOwp9Cg==