#include <bits/stdc++.h>
using namespace std;
#define maxx 100005
#define base 36
#define MOD 1003472009
#define x first
#define y second
long long n, m, k, a[maxx], s[4*maxx], start[maxx];
vector<long long> f[maxx];
long long dp[305][maxx];
void update(int id, int x, int y, int u, long long v)
{
if(x>u||y<u) return;
if(x==y&&x==u)
{
s[id]=max(s[id], v);
return;
}
int mid=(x+y)/2;
update(id*2, x, mid, u, v);
update(id*2+1, mid+1, y, u, v);
s[id]=max(s[id*2], s[id*2+1]);
}
long long get(int id, int x, int y, int u, int v)
{
if(x>v||y<u) return -1e18;
if(x>=u&&y<=v) return s[id];
int mid=(x+y)/2;
return max(get(id*2, x, mid, u, v), get(id*2+1, mid+1, y, u, v));
}
long long solve1()
{
map<int, int> f;
int ans=0;
for(int i=1; i<=n; i++)
{
if(f[a[i]]==m)
{
f.clear();
ans++;
}
f[a[i]]++;
}
return ans+1;
}
long long solve2()
{
for(int i=1; i<=n; i++)
{
f[a[i]].push_back(i);
int t=f[a[i]].size();
if(t>m)
update(1, 1, n, i, f[a[i]][t-m-1]+1);
start[i]=max((long long) 1, get(1, 1, n, 1, i));
}
memset(dp, 61, sizeof(dp));
dp[0][0]=0;
for(int i=0; i<=k; i++)
{
deque<int> ans;
for(int j=1; j<=n; j++)
{
if(i>0) dp[i][j]=min(dp[i][j], dp[i-1][j-1]);
while(!ans.empty()&&dp[i][ans.back()-1]>=dp[i][j-1]) ans.pop_back();
ans.push_back(j);
while(!ans.empty()&&ans.front()<start[j]) ans.pop_front();
dp[i][j]=min(dp[i][j], dp[i][ans.front()-1]+1);
}
}
long long kq=1e18;
for(int i=0; i<=k; i++)
{
kq=min(kq, dp[i][n]);
}
return kq;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin>>n>>m>>k;
for(int i=1; i<=n; i++) cin>>a[i];
if(k==0)
{
cout<<solve1();
}
else
{
cout<<solve2();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIG1heHggMTAwMDA1CiNkZWZpbmUgYmFzZSAzNgojZGVmaW5lIE1PRCAxMDAzNDcyMDA5CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCmxvbmcgbG9uZyBuLCBtLCBrLCBhW21heHhdLCBzWzQqbWF4eF0sIHN0YXJ0W21heHhdOwp2ZWN0b3I8bG9uZyBsb25nPiBmW21heHhdOwpsb25nIGxvbmcgZHBbMzA1XVttYXh4XTsKdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgeCwgaW50IHksIGludCB1LCBsb25nIGxvbmcgdikKewogICAgaWYoeD51fHx5PHUpIHJldHVybjsKICAgIGlmKHg9PXkmJng9PXUpCiAgICB7CiAgICAgICAgc1tpZF09bWF4KHNbaWRdLCB2KTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkPSh4K3kpLzI7CiAgICB1cGRhdGUoaWQqMiwgeCwgbWlkLCB1LCB2KTsKICAgIHVwZGF0ZShpZCoyKzEsIG1pZCsxLCB5LCB1LCB2KTsKICAgIHNbaWRdPW1heChzW2lkKjJdLCBzW2lkKjIrMV0pOwp9CmxvbmcgbG9uZyBnZXQoaW50IGlkLCBpbnQgeCwgaW50IHksIGludCB1LCBpbnQgdikKewogICAgaWYoeD52fHx5PHUpIHJldHVybiAtMWUxODsKICAgIGlmKHg+PXUmJnk8PXYpIHJldHVybiBzW2lkXTsKICAgIGludCBtaWQ9KHgreSkvMjsKICAgIHJldHVybiBtYXgoZ2V0KGlkKjIsIHgsIG1pZCwgdSwgdiksIGdldChpZCoyKzEsIG1pZCsxLCB5LCB1LCB2KSk7Cn0KCmxvbmcgbG9uZyBzb2x2ZTEoKQp7CiAgICBtYXA8aW50LCBpbnQ+IGY7CiAgICBpbnQgYW5zPTA7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGlmKGZbYVtpXV09PW0pCiAgICAgICAgewogICAgICAgICAgICBmLmNsZWFyKCk7CiAgICAgICAgICAgIGFucysrOwogICAgICAgIH0KICAgICAgICBmW2FbaV1dKys7CiAgICB9CiAgICByZXR1cm4gYW5zKzE7Cn0KbG9uZyBsb25nIHNvbHZlMigpCnsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgZlthW2ldXS5wdXNoX2JhY2soaSk7CiAgICAgICAgaW50IHQ9ZlthW2ldXS5zaXplKCk7CiAgICAgICAgaWYodD5tKQogICAgICAgICAgICB1cGRhdGUoMSwgMSwgbiwgaSwgZlthW2ldXVt0LW0tMV0rMSk7CiAgICAgICAgc3RhcnRbaV09bWF4KChsb25nIGxvbmcpIDEsIGdldCgxLCAxLCBuLCAxLCBpKSk7CiAgICB9CiAgICBtZW1zZXQoZHAsIDYxLCBzaXplb2YoZHApKTsKICAgIGRwWzBdWzBdPTA7CiAgICBmb3IoaW50IGk9MDsgaTw9azsgaSsrKQogICAgewogICAgICAgIGRlcXVlPGludD4gYW5zOwogICAgICAgIGZvcihpbnQgaj0xOyBqPD1uOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihpPjApIGRwW2ldW2pdPW1pbihkcFtpXVtqXSwgZHBbaS0xXVtqLTFdKTsKICAgICAgICAgICAgd2hpbGUoIWFucy5lbXB0eSgpJiZkcFtpXVthbnMuYmFjaygpLTFdPj1kcFtpXVtqLTFdKSBhbnMucG9wX2JhY2soKTsKICAgICAgICAgICAgYW5zLnB1c2hfYmFjayhqKTsKICAgICAgICAgICAgd2hpbGUoIWFucy5lbXB0eSgpJiZhbnMuZnJvbnQoKTxzdGFydFtqXSkgYW5zLnBvcF9mcm9udCgpOwogICAgICAgICAgICBkcFtpXVtqXT1taW4oZHBbaV1bal0sIGRwW2ldW2Fucy5mcm9udCgpLTFdKzEpOwogICAgICAgIH0KICAgIH0KICAgIGxvbmcgbG9uZyBrcT0xZTE4OwogICAgZm9yKGludCBpPTA7IGk8PWs7IGkrKykKICAgIHsKICAgICAgICBrcT1taW4oa3EsIGRwW2ldW25dKTsKICAgIH0KICAgIHJldHVybiBrcTsKfQppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGNpbj4+bj4+bT4+azsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspIGNpbj4+YVtpXTsKICAgIGlmKGs9PTApCiAgICB7CiAgICAgICAgY291dDw8c29sdmUxKCk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgY291dDw8c29sdmUyKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=