#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,b,k,cnt;
int t[maxn];
deque<int> q;
int ans=maxn;
int s[maxn];
int main(){
cin>>n>>k>>b;
for(int i=1;i<=b;i++){
int x;
cin>>x;
if(s[x])
continue;
t[++cnt]=x;
s[x]=1;
}
sort(t+1,t+1+b);
q.push_back(0);
for(int i=1;i<=cnt;i++){
while(!q.empty()&&t[i]-q.front()>k){
q.pop_front();
ans=min(ans,(int)q.size());
}
if(!q.empty()&&t[i]-q.front()>=k){
q.pop_front();
ans=min(ans,(int)q.size());
}
q.push_back(t[i]);
}
q.clear();
q.push_back(n);
for(int i=cnt;i>=0;i--){
while(!q.empty()&&q.front()-t[i]>k){
q.pop_front();
ans=min(ans,(int)q.size());
}
if(!q.empty()&&q.front()-t[i]>=k){
q.pop_front();
ans=min(ans,(int)q.size());
}
q.push_back(t[i]);
}
if(ans==maxn) ans=b;
cout<<ans<<endl;
return 0;
}