#include
using namespace std;
bool isPossible(long int a[],long int N,long int K,long int T,long int mid)
{
if(K>=N)
{
if(mid-(T*a[N-1])>=0)
{
return true;
}
}
else
{
mid=mid-(a[K-1]*T);
long int d=N-K;
for(long int i=d+1;i<N;i++)
{
mid=mid-(a[i]*T);
}
if(mid>=0)
{
return true;
}
}
return false;
}
int min_time(long int a[],long int N,long int K,long int T)
{
long int sum=0;
for(int i=0;i<N;i++)
{
sum+=a[i];
}
long int s=a[N-1]T;
long int e=sumT;
long int ans;
while(s<=e)
{
long int mid=(s+e)/2;
if(isPossible(a,N,K,T,mid))
{
ans=mid;
e=mid-1;
}
else
{
s=mid+1;
}
}
return ans%(10000003);
}
int main()
{
long int N,K,T;
cin>>N>>K>>T;
long int a[N];
for(long int i=0;i<N;i++)
{
cin>>a[i];
}
cout<<min_time(a,N,K,T);
}