#include<bits/stdc++.h>
#define endl '\n'
#define int signed long long
#define double long double
using namespace std;
constexpr int N=2e5+10;
constexpr int mod=1e18;
void solve()
{
int n,m,k;
cin >> n >> m >> k;
vector<int> num(n);
for(int i=0;i<n;i++)
{
cin >> num[i];
}
multiset<int> l,r;
for(int i=0;i<m;i++)
{
r.insert(num[i]);
}
int ans=0;
for(int i=0;i<k;i++)
{
int cnt=*r.begin();
r.erase(r.begin());
l.insert(cnt);
ans+=cnt;
}
for(int i=0,j=m;i<n-m+1;j++,i++)
{
if(j==n)
break;
r.insert(num[j]);
if(r.find(num[i])==r.end())
{
ans-=num[i];
l.erase(l.find(num[i]));
}else
{
r.erase(r.find(num[i]));
}
while(l.size()<k)
{
int cnt=*r.begin();
l.insert(cnt);
r.erase(r.begin());
ans+=cnt;
}
while(!r.empty()&&!l.empty()&&*(--l.end())>*r.begin())
{
ans=ans+(*r.begin())-(*l.rbegin());
l.insert(*r.begin());
l.erase(--l.end());
r.erase(r.begin());
}
}
}
signed main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
solve();
return 0;
}