#include<bits/stdc++.h>
using namespace std;
bool timePossible(int mid, int time[], int n, int k, int t){
int timeSpent = 0, painter=1;
cout<<mid<<"\n";
for(int i=0; i<n; i++){
if(timeSpent + time[i] <= mid){
timeSpent += time[i];
}
else{
if(painter + 1>k){
return false;
}
painter++;
timeSpent=0;
i--;
}
}
return true;
}
int main() {
int n, k, t, total_size=0;
cin>>n>>k>>t;
int a[n], time[n];
for( int i=0; i<n; i++){
cin>>a[i];
total_size+= a[i];
}
for( int i=0; i<n; i++){
time[i]= a[i]*t;
}
int s= *max_element(time, time+n) , e= t*total_size, ans;
while(s<=e){
int mid=(s+e)/2;
if(timePossible(mid, time, n, k, t)){
ans=mid;
e=mid-1;
}
else{
s=mid+1;
}
}
cout<<ans % 10000003;
return 0;
}