#include
#include
using namespace std;
bool valid(long long int n, long long int k, long long int t,long long int a[],long long int mid, long long int sum)
{
int prod=0,c,tot;
for(int i=0;i<n;i++)
{
if(prod+(a[i]*t)>mid)
{
k–;
prod=0;
if(k==0)
{
return false;
}
}
else
{
prod+=a[i]*t;
}
}
return true;
}
int paint(long long int n,long long int k,long long int t,long long int a[],long long int sum)
{
long long int low=a[n-1]t,high=sumt,ans;
long long int mid;
while(low<=high)
{
mid=(low+high)/2;
if(valid(n,k,t,a,mid,sum))
{
ans=mid;
high=mid-1;
}
else
{
low=mid+1;
}
}
return ans;
}
int main() {
long long int n,k,t,sum=0;
cin>>n>>k>>t;
long long int a[1000005];
for(int i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i];
}
sort(a,a+n);
cout<<(paint(n,k,t,a,sum))%10000003;
return 0;
}