#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=1000000+10;
int n,k,p;
int want[MAX];
int begin[MAX],next[MAX];
int main()
{
// freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
int i;
cin>>n>>k>>p;
REP(i,1,p)
scanf("%d",&want[i]);
REP(i,1,n)
begin[i]=p+1;
for(i=p;i>=1;--i)
{
next[i]=begin[ want[i] ];
begin[want[i]]=i;
}
set< pair<int,int> > toDel;
int ans=0;
REP(i,1,p)
{
int u=want[i];
set< pair<int,int> >::iterator it=toDel.find( mp( -begin[u],u ) );
if(it==toDel.end())
{
++ans;
if((int)toDel.size()==k)
toDel.erase(toDel.begin());
begin[u]=next[begin[u]];
toDel.insert( mp(-begin[u],u) );
}
else
{
toDel.erase(mp(-begin[u],u));
begin[u]=next[begin[u]];
toDel.insert(mp(-begin[u],u));
}
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9MTAwMDAwMCsxMDsKCmludCBuLGsscDsKaW50IHdhbnRbTUFYXTsKaW50IGJlZ2luW01BWF0sbmV4dFtNQVhdOwoKaW50IG1haW4oKQp7Ci8vCWZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTtmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKCWludCBpOwoJY2luPj5uPj5rPj5wOwoJUkVQKGksMSxwKQoJCXNjYW5mKCIlZCIsJndhbnRbaV0pOwoJUkVQKGksMSxuKQoJCWJlZ2luW2ldPXArMTsKCWZvcihpPXA7aT49MTstLWkpCgl7CgkJbmV4dFtpXT1iZWdpblsgd2FudFtpXSBdOwoJCWJlZ2luW3dhbnRbaV1dPWk7Cgl9CglzZXQ8IHBhaXI8aW50LGludD4gPiB0b0RlbDsKCWludCBhbnM9MDsKCVJFUChpLDEscCkKCXsKCQlpbnQgdT13YW50W2ldOwoJCXNldDwgcGFpcjxpbnQsaW50PiA+OjppdGVyYXRvciBpdD10b0RlbC5maW5kKCBtcCggLWJlZ2luW3VdLHUgKSApOwoJCWlmKGl0PT10b0RlbC5lbmQoKSkKCQl7CgkJCSsrYW5zOwoJCQlpZigoaW50KXRvRGVsLnNpemUoKT09aykKCQkJCXRvRGVsLmVyYXNlKHRvRGVsLmJlZ2luKCkpOwoJCQliZWdpblt1XT1uZXh0W2JlZ2luW3VdXTsKCQkJdG9EZWwuaW5zZXJ0KCBtcCgtYmVnaW5bdV0sdSkgKTsKCgkJfQoJCWVsc2UKCQl7CgkJCXRvRGVsLmVyYXNlKG1wKC1iZWdpblt1XSx1KSk7CgkJCWJlZ2luW3VdPW5leHRbYmVnaW5bdV1dOwoJCQl0b0RlbC5pbnNlcnQobXAoLWJlZ2luW3VdLHUpKTsKCQl9Cgl9Cgljb3V0PDxhbnM8PGVuZGw7CglyZXR1cm4gMDsKfQo=